漏洞概要
关注数(24)
关注此漏洞
漏洞标题:一个flash的0day导致的淘宝网存储xss 【续集】
提交时间:2013-10-24 08:17
修复时间:2013-12-08 08:18
公开时间:2013-12-08 08:18
漏洞类型:xss跨站脚本攻击
危害等级:中
自评Rank:8
漏洞状态:厂商已经确认
Tags标签:
无
漏洞详情
披露状态:
2013-10-24: 细节已通知厂商并且等待厂商处理中
2013-10-24: 厂商已经确认,细节仅向厂商公开
2013-11-03: 细节向核心白帽子及相关领域专家公开
2013-11-13: 细节向普通白帽子公开
2013-11-23: 细节向实习白帽子公开
2013-12-08: 细节向公众公开
简要描述:
今天看了http://www.wooyun.org/bugs/wooyun-2013-039481这个帖子,思路挺有意思!狂顶赞!不过作为一个职业的马甲,看了下淘宝对这个漏洞的修复措施,发现修复并不彻底,提交下!
详细说明:
反编译了一下http://acjstb.aliyun.com/actionlog/flash/JSocket.swf这个文件。
淘宝的修复代码如下:
可以看到,多加一个正则表达式,如果存储的key里存在 [a-zA-Z]的字符,则调用 setlso("");
把所有字母都过滤掉了,那么这样是否就完全不能执行JS代码了呢?
根据帖子( WooYun: 一个flash的0day导致的淘宝网存储xss(可形成永久后门) )作者neobyte的描述。
实际上执行的是JS代码。
我们来尝试构造一个不需要使用任何字母执行代码的版本。
解释:
"字符串"['substr']['constructor'] 得到 function Function() { [native code] }
"字符串"['substr']['constructor']('alert(1)')() 等同于
Function('alert(1)')()
接着,我们把上面代码里的字符串全部使用8进制转义。
我们所输入的代码,实际上是
可以看到,不包含任何字母,这样可以成功绕过淘宝的过滤措施。
具体利用代码,见漏洞证明。
漏洞证明:
代码从原帖里直接复制过来的(代码版权归neobyte所有),只是把setlso的数据换了下。
访问这个页面后,再访问 login.taobao.com即可看到效果。
修复方案:
我觉得根据漏洞成因来看,正确的修复方式是,过滤掉数据里的 反斜线 \,而不是过滤字母。
版权声明:转载请注明来源 多多关照@乌云
漏洞回应
厂商回应:
危害等级:中
漏洞Rank:5
确认时间:2013-10-24 14:19
厂商回复:
感谢你对我们的支持与关注,该问题正在修复~~
最新状态:
暂无