1. 首先介绍下公司
名称: 广州市问途信息技术有限公司
网址:http://**.**.**.**/
介绍:中国酒店业最为专业的网络营销技术公司,运用互联网技术提升酒店收益,为酒店打造网络直销及客户服务平台以及酒店网络营销服务。包括酒店官方网站,多渠道预订引擎,客户会员营销管理系统,智能手机客户端和社会性媒体营销管理系统等。
keywords:酒店网络营销,酒店网站,酒店网站建设,酒店在线直销,酒店移动互联网营销,智能手机客户端,收益管理系统,预订引擎,微博营销,酒店会员管理,酒店,酒店网站开发,移动营销常客计划
2. 客户群
官网有一些最新的客户案例,如图
![某通用酒店建站系统 SQL注入( 已getshell)可查订房信息]()
当然这只是一部分,根据官网的案例,得到关键字:技术伙伴:问途酒店网络营销顾问 html, 因为该公司之前好像有做过一套aspx的系统,新系统是php + mysql的,所以加上了个html,下面是搜索结果:
![某通用酒店建站系统 SQL注入( 已getshell)可查订房信息]()
结果不少,这里列举一些例子,证明其通用性:
3. SQL注入
首先是SQL注入,注入点其实很多,
有找回密码处,url特征:
登入处,url特征:
查询订单处等等,只要请求中包含了client_account这个参数,都存在注入。
这里以找回密码为例子,这里选几个例子证明通用性,来源包括官网给出的最新案例,和通过搜索引擎找到的例子
官网例子1.河南天地粤海酒店 http://**.**.**.**/
到网站,点击登入,然后忘记密码,
![某通用酒店建站系统 SQL注入( 已getshell)可查订房信息]()
随便输入一个邮箱,然后burp抓包,请求链接:
丢到SQLMAP中跑,
官网例子2.君廷酒店及度假村集团 http://**.**.**.**/member.html
![某通用酒店建站系统 SQL注入( 已getshell)可查订房信息]()
搜索引擎例子1: 海南亚泰温泉酒店 http://**.**.**.**/get_password.html
验证码,只在前端验证,可绕过
![某通用酒店建站系统 SQL注入( 已getshell)可查订房信息]()
搜索引擎例子2: 福州永泰香米拉温泉酒店 http://**.**.**.**/get_password.html
验证码,只在前端验证,可绕过
![某通用酒店建站系统 SQL注入( 已getshell)可查订房信息]()
4. getshell
找到SQL注入后,想了想,不拿到shell不是好漏洞。所以开始通过sqlmap去getshell,发现用户没有写权限。所以就去找找后台,google发现后台链接,是官网地址的www换成cms,大部分例子都可以按照这个规则找到后台登入地址。例子有
http://**.**.**.**/ http://**.**.**.**/Login/login
http://**.**.**.**/ http://**.**.**.**/Login/login
http://**.**.**.**/ http://**.**.**.**/Login/login
http://**.**.**.**/ http://**.**.**.**/Login/login
http://**.**.**.**/ http://**.**.**.**/Login/login
http://**.**.**.**/ http://**.**.**.**/Login/login
http://**.**.**.**/ http://**.**.**.**/Login/login
http://**.**.**.**/ http://**.**.**.**/Login/login
http://**.**.**.**/ http://**.**.**.**/Login/login
http://**.**.**.**/ http://cms.**.**.**.**/Login/login
http://**.**.**.**/ http://**.**.**.**/Login/login
http://**.**.**.**/ http://**.**.**.**/Login/login
http://**.**.**.**/ http://**.**.**.**/
http://**.**.**.**/ http://**.**.**.**/
**.**.**.**/ http://**.**.**.**/Login/login
http://**.**.**.**/ http://**.**.**.**/Login/login
等等
界面类似:
![某通用酒店建站系统 SQL注入( 已getshell)可查订房信息]()
![某通用酒店建站系统 SQL注入( 已getshell)可查订房信息]()
那么问题来了,学挖掘机技术哪家强(账号密码是什么)?
经过寻找,发现数据库dossm中的表tbl_user保存的是账号密码,密码加密了,破解后
找到几个弱密码的通用账号,
随便找几个网站后台登入
![某通用酒店建站系统 SQL注入( 已getshell)可查订房信息]()
![某通用酒店建站系统 SQL注入( 已getshell)可查订房信息]()
![某通用酒店建站系统 SQL注入( 已getshell)可查订房信息]()
然后我们简单看下系统的功能:
![某通用酒店建站系统 SQL注入( 已getshell)可查订房信息]()
![某通用酒店建站系统 SQL注入( 已getshell)可查订房信息]()
![某通用酒店建站系统 SQL注入( 已getshell)可查订房信息]()
![某通用酒店建站系统 SQL注入( 已getshell)可查订房信息]()
登入系统后,找找有什么地方可以上传shell,找了一圈,发现都是上传图片,后台也做了限制。不甘心,再找了找,发现有一个地方有点希望,可以上传.php后缀文件,还可以写文件,之后会介绍。
<poc>
我们先来看一下getshell的几个条件,
1. 需要找到外界可以访问的url路径
2. 可以找到url路径对应的绝对路径,并且该路径可写
这里随便找一个系统为例,其他同理,
首先我们来找条件1,
cms系统中找到任意一个可以上传图片的位置
![某通用酒店建站系统 SQL注入( 已getshell)可查订房信息]()
点击图片,发现可以直接从外部访问
![某通用酒店建站系统 SQL注入( 已getshell)可查订房信息]()
那么再找到该url对应的绝对路径,点击浏览选择
![某通用酒店建站系统 SQL注入( 已getshell)可查订房信息]()
出现
![某通用酒店建站系统 SQL注入( 已getshell)可查订房信息]()
burp请求
![某通用酒店建站系统 SQL注入( 已getshell)可查订房信息]()
响应暴露绝对路径
![某通用酒店建站系统 SQL注入( 已getshell)可查订房信息]()
因为这里不能直接上传php后缀的文件,那么需要通过其他方式,经过寻找发现,
有一处位置可以写文件,且对文件后缀没有做限制,如图
(此处,其他系统可以构造url: htpp://cms网址/Website/languageFile,进入即可,如http://**.**.**.**/Website/languageFile,http://cms.**.**.**.**/Website/languageFile,
http://**.**.**.**/Website/languageFile)
![某通用酒店建站系统 SQL注入( 已getshell)可查订房信息]()
我们来看一下burp请求,
![某通用酒店建站系统 SQL注入( 已getshell)可查订房信息]()
![某通用酒店建站系统 SQL注入( 已getshell)可查订房信息]()
![某通用酒店建站系统 SQL注入( 已getshell)可查订房信息]()
那么我们的shell地址就是,http://**.**.**.**/public/upload/20141018/heiha.php
用菜刀连接之,密码xxx
</poc>
![某通用酒店建站系统 SQL注入( 已getshell)可查订房信息]()
再看几个其他shell
![某通用酒店建站系统 SQL注入( 已getshell)可查订房信息]()
![某通用酒店建站系统 SQL注入( 已getshell)可查订房信息]()
评论