- A+
漏洞盒子-苏宁易购安全测试项目于2014年9月16日-19日进行,目前已落下帷幕。苏宁易购是苏宁云商旗下新一代B2C综合网上购物平台,现已覆盖传统家电、3C电器、日用百货等全品类。目前位居中国B2C市场份额前三强。
小编在此精心整理了本次测试中出现的优秀漏洞,希望各位白帽子能有所收获。相信经过了这次安全测试和漏洞修复,厂商的安全性也得到了提高。详情请移步漏洞黑板报
0×01 SQL注入
1、苏宁易购彩票SQL注入漏洞(提交者:nx4dm1n 类型:高危 Rank值:100)
漏洞存在于苏宁易购的某彩票网站:http://zst.caipiao.suning.com/cjwk3/view/kuai3_weicha.php
该页面对http header头部的host参数未进行类型判断,或者使用了拼接SQL语句,导致漏洞的产生,访问该URL,抓包,具体包数据如下:
GET /cjwk3/view/kuai3_weicha.php HTTP/1.1 Host: ' User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:32.0) Gecko/20100101 Firefox/32.0 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Accept-Language: zh-cn,zh;q=0.8,en-us;q=0.5,en;q=0.3 Accept-Encoding: gzip, deflate DNT: 1 Cookie: _ga=GA1.2.598415471.1410969664; _snma=1%7C141096966399818284%7C1410969663998%7C1410969664868%7C1410969681172%7C3%7C1; _snmc=1; _snsr=direct%7Cdirect%7C%7C%7C; _snmb=141096966400040408%7C1410969664870%7C1410969681174%7C3; _snmp=141096966486911086; Hm_lvt_cf0edaa8286c50688a44276a6661f3ef=1410969664; Hm_lpvt_cf0edaa8286c50688a44276a6661f3ef=1410969681; __utma=1.598415471.1410969664.1410969665.1410969665.1; __utmb=1.2.10.1410969665; __utmc=1; __utmz=1.1410969665.1.1.utmcsr=zst.caipiao.suning.com|utmccn=(referral)|utmcmd=referral|utmcct=/ Connection: keep-alive
对host头信息进行注入测试,在后面加上 ',得到数据如下图:
很明显这里存在sql注入,那还等什么,上神器sqlmap!
命令如下:
sqlmap.py -r 222.txt --dbs -v 3 --dbms "MySQl" --l evel 5 --risk 3 --random-agent --time-sec 20
但是我们的白帽子都是有节操的,做到这里,就立刻停止了,赶紧将漏洞报告给了厂商。
2、苏宁云多处注入(提交者:greg.wu 类型:高危 Rank值:100)
漏洞存在于苏宁的云服务平台
在搜索文件的地方存在第一个SQL注入点
将搜索数据包截断下来,数据如下:
POST /cloud-api/files/searchFiles? HTTP/1.1 User-Agent: Mozilla/5.0 (iPhone; U; CPU iPhone OS 3_0 like Mac OS X; en-us) AppleWebKit/528.18 (KHTML, like Gecko) Version/4.0 Mobile/7A341 Safari/528.16 Accept-Encoding: gzip Accept-Language: en Content-Length: 55 Content-Type: application/x-www-form-urlencoded Host: cloud.suning.com Connection: Keep-Alive Cookie: JSESSIONID=0000eGym4vtoCV3XoExsOEPjLPy:17lhihrcp; PANSESSIONID=f72797433dcc8c709b194b5a33070464 Cookie2: $Version=1 pageSize=40&column=TIME&value=aa&point=DESC&pageIndex=1
然后经过细心地分析,发现point和value两个字段都没有过滤,单引号就报错,看图
然后,添加if语句,我们发现sql命令是可以执行的:
第二处漏洞存在于下列文件列表功能处,截包如下:
POST /cloud-api/files/list? HTTP/1.1 User-Agent: Mozilla/5.0 (iPhone; U; CPU iPhone OS 3_0 like Mac OS X; en-us) AppleWebKit/528.18 (KHTML, like Gecko) Version/4.0 Mobile/7A341 Safari/528.16 Accept-Encoding: gzip Accept-Language: en Content-Length: 75 Content-Type: application/x-www-form-urlencoded Host: cloud.suning.com Connection: Keep-Alive Cookie: JSESSIONID=0000eGym4vtoCV3XoExsOEPjLPy:17lhihrcp; PANSESSIONID=f72797433dcc8c709b194b5a33070464 Cookie2: $Version=1 pageSize=40&column=TIME&point=DESC&pageIndex=1&folderId=562569&userId=30460
同样是point参数
第三处漏洞存在于登录api处,参数mobilepattern存在sql注入,如下图:
我知道大家更关心这些漏洞是怎样发现的,可是真的没有更好的方式,除了个人多年的挖洞直觉,更多的是一种耐心,见到参数,第一直觉就是试试,试试就知道行不行了。当然如果你有私人Fuzzing神器,我就不好说什么啦……
当然不断的看前人的挖洞经验也是一种绝佳的方式:)
3、苏宁应用商店sql注入(提交者:admin55 类型:高危 Rank值:100)
该sql注入存在于苏宁应用商店的站点,存在sql注入的URL是 http://appjson.suning.com/advertise.php?page=3&limit=2&sys=android&class=102 其中class参数过滤不严导致sql注入产生
直接打入心脏,看着都疼……
0×02 弱口令直接导致后台暴漏
看完了令人心惊胆寒的sql注入漏洞,下面我们再聊聊弱口令的问题。(此处郑重鸣谢我们的黑客叔叔@p0tt1,三发高危均出自倜(wei)傥(suo)的叔叔之手)
可能有小伙伴说了,这个也叫漏洞?那么我可以很负责任的告诉你:叫!因为渗透测试,更注重的是全面。
我仍然记得一位哲人曾45°仰望天空告诉我:“你要记得,程序本身没有弱点,弱点总是在于人;有人的地方,就不安全!”
几发弱口令让你清晰看到什么叫做真正的危险!
1、搞定苏宁第四弹 苏宁FOTA服务器系统(弱口令)
“最纯洁的弱密码就是用户名”——p0tt1
叔叔通过查找他个人收集的数据库,找到了一个与suning相关的用户名,而根据他的哲理,密码用的相同数据,成功拿下后台。
用户名密码都是:qifan
这次更加直接,看到论坛就想操刀的蜀黍,直接爆出了UCkey,关于UCkey获取后台的方法大家可以去找一些相关资料。
这次获取到的UCkey格式是:
http://club.suning.com/config/config_ucenter.php.xxxxxxxxx
蜀黍还说:别乱质疑了!工具都可爆破好么!
第三发弱口令导致的漏洞,我能说我现在很想要蜀黍的字典么?(叔叔你看到请私信我叭:P)
爆破的地址是:http://ued.suning.com/survey/admin/
经过不懈努力,果真拿到了用户名和密码:130xxx86 123456
当然到这里还没结束,登录之后发现后台还存在nginx解析漏洞,上传了php一句话
上传之后地址为:http://ued.suning.com/survey/attached/image/20140916/2014xxxxxxxxxxxxxx.jpg/1.php
然后剩下的一切自然就顺风顺水了:
你还想说什么吗?去找黑客蜀黍谈谈心吧。
0×03 权限绕过(平行权限)
1、广告联盟可查看/可修改其他个人网站信息(提交者:leesec 类型:低危 Rank值:10)
典型的平行权限,没有对ID参数进行权限限制,导致可以修改任意注册用户的资料。
漏洞存在地址:http://union.suning.com/aas/myinfo/website-info-mgr!toAddUpdateWebsitePage.action?websiteId=xxxxx
2、易付宝平行权限漏洞(提交者:Da^Liang 类型:中危 Rank值:30)
修改个人职业信息时截断数据包,然后将userId改成其他人的,通过遍历,便可实现修改所有人职业信息。
具体操作看图
账号A职业为“IT教育****”,ID为70269881
账号B为学生,ID为70191738
修改A账户信息,截断数据,将userId改为B账户的
这时候我们发现B账户信息已经被修改了
我们就这样都变成搬砖的了
3、某处权限绕过(提交者:soulsexer 类型:中危 Rank值:30)
苏宁SCS站点权限验证有点小问题,导致绕过添加任意信息
漏洞存在站点:http://scs.suning.com/sps/ 存在于苏宁SCS供应商门户,在功能【招商管理】–【合作模式选择】下,点击【线下招商】权限开通,会提示要输入供应商编码并通过才能操作下一步
这个时候直接访问:http://scs.suning.com//sps/cooperateschema/getCompleteCompanyMeg.action?cotype=CT03&suppliercode=11
没错,我们又绕过来了。
4、Google Hacking直接获取登录状态同时发现XSS跨站脚本漏洞(提交者:piaox 类型:中危 Rank值:30)
历史总是惊人的相似!
说到Google Hacking获取登录状态,不知道还有几个人记得今年上半年的淘宝跳转认证链接参数泄露直接Google,点击链接直接登录我们亲爱的淘友的账户导致地址已购商品泄露的漏洞?可惜当时的截图都已经不存在了,我们看看这次的漏洞过过瘾吧!
不过瘾?那再给你一个XSS,接着!
0×04 逻辑问题
1、苏宁开放服务网(open.suning.com)任意用户密码重置(提交者:piaox 类型:中危 Rank值:30)
漏洞出现在苏宁开放服务网的找回密码功能https://open.suning.com/api/toResetPwd.html
我们的白帽子用[email protected]进行了测试(账户存在,但是不是提交者注册的)
第一步:发送邮箱接受验证码过程中,把接受邮件伪造下
第二步:伪造邮箱成功接受到验证码后,输入验证码完成验证
第三步:比较关键,通过验证码进行密码重置时,原先伪造的邮件地址,一定要改回[email protected]即可。
[email protected]在未知密码前提下,成功重置成suning
咦?怪不得前几天我的密码被改了,这下算是明白了…
2、pay高危越权操作他人账户信息(提交者:admin55 类型:高危 Rank值:100)
漏洞出现在删除自身银行卡信息时没有进行权限限制导致平行权限产生
漏洞URL为https://pay.suning.com/epp-epw/withdraw/withdraw!deleteUserBankCard.action?id=763104&_=1411034623805
删除成功则返回
{"isSuccess":"0"}
删除失败返回
{"isSuccess":"1"}
被删除用户会返回
{"queryCardFlag":"F"}
这里漏洞提交者说明结合其另外一个越权访问其他用户银行卡信息漏洞可实现全站用户信息泄露且被删除,危害真是很大。
写到这里,我不知不觉又想起了前几天eBay的漏洞,越权漏洞危害可见一斑:《揭秘:如何分分钟黑掉你的eBay账号(含视频)》
0×05 设计缺陷导致验证码本地暴漏
这里一共两发漏洞,原理类似,我们放在一起看。
苏宁招标平台任意密码重置(1)(提交者:admin55 类型:中危 Rank值:30)
苏宁招标平台注册验证码泄露(2)(提交者:admin55 类型:低危 Rank值:10)
首先第一个,在重置密码的过程中验证码暴漏在了返回信息中
URL:https://zb.suning.com/bid-web/supRegisterInitForPw.htm
这里我们选择发送邮件找回密码:
POST /bid-web/[email protected] HTTP/1.1 Host: zb.suning.com User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:32.0) Gecko/20100101 Firefox/32.0 Accept: */* Accept-Language: zh-cn,zh;q=0.8,en-us;q=0.5,en;q=0.3 Accept-Encoding: gzip, deflate X-Requested-With: XMLHttpRequest Referer: https://zb.suning.com/bid-web/supRegisterInitForPw.htm Cookie: JSESSIONID=0000UqqvoOzRg10FafJtWmfSzjc:185ur5bv9 Connection: keep-alive Pragma: no-cache Cache-Control: no-cache Content-Length: 0
截包得到返回值:
HTTP/1.1 200 OK Date: Tue, 16 Sep 2014 07:54:54 GMT Server: nginx Content-Type: text/html;charset=UTF-8 Cache-Control: no-cache,no-store,max-age=0 Content-Language: en-US X-Via: 1.1 nt89:4 (Cdn Cache Server V2.0) Connection: keep-alive Content-Length: 44 {"authCode":"110702","resultCode":"success"}
返回值中包含验证码为“110702”
我们再看邮件信息
第二个与第一个如出一辙,不同的是这个是在注册验证的地方
URL:https://zb.suning.com/bid-web/supRegisterInitActiMailBox.htm?timeMark=1410856230503
发送邮件,F12查看元素,直接看到验证码,只不过加上了hidden属性而已,这样真的好么……
0×05 其他类型
收款主页用户姓名、银行卡泄露(提交者:leesec 类型:中危 Rank值:30)
leesec男神每天混迹于与款项相关的地方,每天考虑如何给别人打点钱(没办法钱太多了),于是发现了这个问题
打开收款人主页,发现
擦咧!这码打得有点。。。略不是地方啊。。。
额。。这个样子遍历就可以获取伦家的信息啦,裤子又肥了。。。
0×06 总结
通过以上分析,小伙伴有什么感受?是不是发现挖洞其实也是很简单的啦?就是嘛。我们的伟人曾经说过:
如果你也想痛快来一发,何不现在就开始呢?来漏洞盒子!满足你的愿望!带你致富大牛带你飞!
[文/FreeBuf小编xia0k 参考资源:漏洞黑板报 转载请注明FreeBuf.COM]
- 我的微信
- 这是我的微信扫一扫
- 我的微信公众号
- 我的微信公众号扫一扫