漏洞概要
关注数(24)
关注此漏洞
漏洞标题:某通用酒店建站系统 SQL注入( 已getshell)可查订房信息
提交时间:2014-10-22 16:40
修复时间:2015-01-20 16:40
公开时间:2015-01-20 16:40
漏洞类型:SQL注射漏洞
危害等级:高
自评Rank:20
漏洞状态:未联系到厂商或者厂商积极忽略
Tags标签:
无
漏洞详情
披露状态:
2014-10-22: 积极联系厂商并且等待厂商认领中,细节不对外公开
2015-01-20: 厂商已经主动忽略漏洞,细节向公众公开
简要描述:
该酒店建站系统用户包括单体酒店、集团酒店,集团酒店下面还有很多分店啊啊啊
可以查到用户的客房预订信息,信息包括姓名、电话、邮箱...
用户信息还可以导出、可以给用户推荐邮件等等
通过cms系统中的一个功能来getshell,不容易,花了些功夫
写的好辛苦,这个漏洞要是没 $ ,就再也不相信爱情了
详细说明:
1. 首先介绍下公司
名称: 广州市问途信息技术有限公司
网址:http://www.wintour.cn/
介绍:中国酒店业最为专业的网络营销技术公司,运用互联网技术提升酒店收益,为酒店打造网络直销及客户服务平台以及酒店网络营销服务。包括酒店官方网站,多渠道预订引擎,客户会员营销管理系统,智能手机客户端和社会性媒体营销管理系统等。
keywords:酒店网络营销,酒店网站,酒店网站建设,酒店在线直销,酒店移动互联网营销,智能手机客户端,收益管理系统,预订引擎,微博营销,酒店会员管理,酒店,酒店网站开发,移动营销常客计划
2. 客户群
官网有一些最新的客户案例,如图
当然这只是一部分,根据官网的案例,得到关键字:技术伙伴:问途酒店网络营销顾问 html, 因为该公司之前好像有做过一套aspx的系统,新系统是php + mysql的,所以加上了个html,下面是搜索结果:
结果不少,这里列举一些例子,证明其通用性:
漏洞证明:
3. SQL注入
首先是SQL注入,注入点其实很多,
有找回密码处,url特征:
登入处,url特征:
查询订单处等等,只要请求中包含了client_account这个参数,都存在注入。
这里以找回密码为例子,这里选几个例子证明通用性,来源包括官网给出的最新案例,和通过搜索引擎找到的例子
官网例子1.河南天地粤海酒店 http://www.skyland-hotel.com/
到网站,点击登入,然后忘记密码,
随便输入一个邮箱,然后burp抓包,请求链接:
丢到SQLMAP中跑,
官网例子2.君廷酒店及度假村集团 http://www.baronyhotels.com/member.html
搜索引擎例子1: 海南亚泰温泉酒店 http://www.hainanyataihotel.com/get_password.html
验证码,只在前端验证,可绕过
搜索引擎例子2: 福州永泰香米拉温泉酒店 http://www.ytxml.com/get_password.html
验证码,只在前端验证,可绕过
4. getshell
找到SQL注入后,想了想,不拿到shell不是好漏洞。所以开始通过sqlmap去getshell,发现用户没有写权限。所以就去找找后台,google发现后台链接,是官网地址的www换成cms,大部分例子都可以按照这个规则找到后台登入地址。例子有
http://www.skyland-hotel.com/ http://cms.skyland-hotel.com/Login/login
http://www.holliyardhotel.com/ http://cms.holliyardhotel.com/Login/login
http://www.tfsunshinehotel.com/ http://cms.tfsunshinehotel.com/Login/login
http://www.singwood.com.cn/ http://cms.singwood.com.cn/Login/login
http://www.rhgresorts.com/ http://cms.rhgresorts.com/Login/login
http://www.btghotels.com/ http://cms.btghotels.com/Login/login
http://www.hotelsjianguo.com/ http://cms.hotelsjianguo.com/Login/login
http://www.ouyahotels.com/ http://cms.ouyahotels.com/Login/login
http://www.hnsunshinegroup.com/ http://cms.hnsunshinegroup.com/Login/login
http://cndhotels.com/ http://cms.cndhotels.com/Login/login
http://www.gdhhotels.com/ http://cms.gdhhotels.com/Login/login
http://www.dolton-hotels.com/ http://cms.dolton-hotels.com/Login/login
http://www.aoyuanhealthhotel.com/ http://cms.aoyuanhealthhotel.com/
http://www.krdhotel.com/ http://cms.krdhotel.com/
www.eversunshinehotel.com/ http://cms.eversunshinehotel.com/Login/login
http://www.kuntairoyalhotel.com/ http://cms.kuntairoyalhotel.com/Login/login
等等
界面类似:
那么问题来了,学挖掘机技术哪家强(账号密码是什么)?
经过寻找,发现数据库dossm中的表tbl_user保存的是账号密码,密码加密了,破解后
找到几个弱密码的通用账号,
随便找几个网站后台登入
然后我们简单看下系统的功能:
登入系统后,找找有什么地方可以上传shell,找了一圈,发现都是上传图片,后台也做了限制。不甘心,再找了找,发现有一个地方有点希望,可以上传.php后缀文件,还可以写文件,之后会介绍。
<poc>
我们先来看一下getshell的几个条件,
1. 需要找到外界可以访问的url路径
2. 可以找到url路径对应的绝对路径,并且该路径可写
这里随便找一个系统为例,其他同理,
首先我们来找条件1,
cms系统中找到任意一个可以上传图片的位置
点击图片,发现可以直接从外部访问
那么再找到该url对应的绝对路径,点击浏览选择
出现
burp请求
响应暴露绝对路径
因为这里不能直接上传php后缀的文件,那么需要通过其他方式,经过寻找发现,
有一处位置可以写文件,且对文件后缀没有做限制,如图
(此处,其他系统可以构造url: htpp://cms网址/Website/languageFile,进入即可,如http://cms.mqjgz.cn/Website/languageFile,http://cms.cndhotels.com/Website/languageFile,
http://cms.baohonghotel.com/Website/languageFile)
我们来看一下burp请求,
那么我们的shell地址就是,http://www.mqjgz.cn/public/upload/20141018/heiha.php
用菜刀连接之,密码xxx
</poc>
再看几个其他shell
修复方案:
版权声明:转载请注明来源 小饼仔@乌云
漏洞回应