### 简要描述:
startbbs已经对xss有过滤措施,但是有办法绕过。这里我依然以官方为demo作为测试,因为官方的是最新版。
### 详细说明:
问题出现在发帖的正文文本框:盲打的概率非常高的。
测试了常规的html代码,发现只剩下img标签,其他的都被过滤了,因此可以在img上能发挥作用的只有on系列的事件了。
测试尝试和之前那样
[<img src="https://images.seebug.org/upload/201401/07112720002a493d526f21b731946bfca7d8aea2.jpg" alt="1.jpg" width="600" onerror="javascript:errimg(this);">](https://images.seebug.org/upload/201401/07112720002a493d526f21b731946bfca7d8aea2.jpg)
发布上面的代码,发现过滤成下面这样:
[<img src="https://images.seebug.org/upload/201401/071128032405966c84dc31cf71102ea28c13b1e4.jpg" alt="2.jpg" width="600" onerror="javascript:errimg(this);">](https://images.seebug.org/upload/201401/071128032405966c84dc31cf71102ea28c13b1e4.jpg)
尝试用javascript:伪协议去触发:但是又被过滤成这样:
[<img src="https://images.seebug.org/upload/201401/07112958469f5b47b85d09b5541e1fb111978e07.jpg" alt="3.jpg" width="600" onerror="javascript:errimg(this);">](https://images.seebug.org/upload/201401/07112958469f5b47b85d09b5541e1fb111978e07.jpg)
也就是常规的在敏感字符那加入x 来让事件等功能失效。
到了这一步,暂时没有了头绪。
过了几天之后忽然想到之前新浪邮箱的过滤方式也是如此。
恰当好处,我关注了二哥新浪邮箱xss bypass。
[WooYun: 新浪邮箱正文存储型XSS,空字节不仅能上传,还能跨站](http://www.wooyun.org/bugs/wooyun-2012-07244) (新浪邮箱正文存储型XSS,空字节不仅能上传,还能跨站)
那不如试试\0 空字节看看能否绕过?
发布如下帖子:
<img src=1 o\0n\0error="alert(1)"/>
[<img src="https://images.seebug.org/upload/201401/07113312e06751da092d12a29099b16fda81ae71.jpg" alt="8.jpg" width="600" onerror="javascript:errimg(this);">](https://images.seebug.org/upload/201401/07113312e06751da092d12a29099b16fda81ae71.jpg)
惊奇的发现成功绕过了官方过滤。植入xsser.me的代码。成功获取了cookie
[<img src="https://images.seebug.org/upload/201401/07113414132a43d3d30ef40e7df198a8245088f4.jpg" alt="9.jpg" width="600" onerror="javascript:errimg(this);">](https://images.seebug.org/upload/201401/07113414132a43d3d30ef40e7df198a8245088f4.jpg)
上面是第一种,危害较大。第二种相对而言危害较小,是通过css的expression全角字符去绕过,这里不需要用到\,因此还需要着重过滤一下。测试poc:(仅ie6有效)
```
<img src=1 style="x:expression(alert(1))"/>
```
### 漏洞证明:
都在详细说明里头了。
暂无评论