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

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

缺陷编号:wooyun-2013-024290

漏洞标题:蘑菇街绕过过滤机制继续持久XSS

相关厂商:蘑菇街

漏洞作者: Demon

提交时间:2013-05-23 14:53

修复时间:2013-07-07 14:54

公开时间:2013-07-07 14:54

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

危害等级:低

自评Rank:5

漏洞状态:厂商已经确认

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

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

简要描述:

蘑菇街过滤机制存在缺陷存储型XSS

详细说明:

导致xss的地方是专辑名称,其实导致xss的地方有两处,一是专辑首页有源代码<a title="xxx">xxx</a> 其中xxx就是专辑名称,二是点进该专辑,然后下方有处分享到各大网站的功能,源代码有<div data="....xxx"> 此处引用了专辑标题,由于没有过滤双引号导致两处xss发生的可能,先加个"> 发现代码两处均侧漏,如图:

mogu.jpg


mogu1.jpg


我们首先会想到采用"><script>alert(1)</script>这种方式来进行代码植入,其实是不行的,当闭合掉原来标签的时候,标签之外字符串就被转义了,也就是上述的<script>以及之后的所有<>均被转义,所以只能采用触发事件导致XSS,但是蘑菇街有他自己的过滤方式。各大事件属性大部分被过滤,比如onload onfocus expression style= alert( onclick 等等好多都被过滤掉了。一开始我以为只是过滤为空,所以测试过使用 ononloadload 这种方式去测试,后来才发现原来过滤的字符替换成了一个空白键。由于我用firefox没有显现出来,所以纳闷了好久,用IE的时候才发现被替换掉了。第二处存在于div标签中,style= 字符串被替换成了空白键,所以使用expression这种方式是行不通了。而绕过alert( 则是可能,使用alert/**/(1)就可以绕过其过滤机制,而且有少部分事件属性并未过滤,这里我采用了onmousewheel属性,就是一个没用过滤的事件,我们在专辑填入dd"/onmousewheel=alert/**/(1)⁠⁠//⁠> 发现在标签处滑动鼠标滚轮,成功弹窗,因为在>之前也会加个空白键,所以后面用//防止代码失效。如图:

mogu2.jpg


mogu3.jpg


两处均发生xss,IE下测试成果,firefox不兼容此事件,所以没有成功。或许还有其他事件没有过滤,这里就没测试了。觉得用户使用滚轮的概率还挺高的。

漏洞证明:

mogu2.jpg


mogu3.jpg

修复方案:

过滤双引号和<>,而且采用黑名单的方式是不安全的。

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


漏洞回应

厂商回应:

危害等级:中

漏洞Rank:9

确认时间:2013-05-24 10:00

厂商回复:

非常感谢您的报告。这个问题我们已经确认,会尽快修复,谢谢。

最新状态:

暂无