偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

一種自動(dòng)化檢測(cè)Flash中XSS方法的探討

安全 應(yīng)用安全 自動(dòng)化
對(duì)于如何檢測(cè) Flash 中的 XSS,每個(gè)人都有自己的方法,無(wú)論是使用成型的自動(dòng)化工具(比如swfscan)還是自己開(kāi)發(fā)自動(dòng)化工具(先反編譯,再對(duì)actionscript代碼審計(jì))還是直接人工對(duì)代碼進(jìn)行審計(jì)。都能夠檢測(cè)到 Flash 中存在的 XSS 漏洞。

0x00 前面的話(huà)

對(duì)于如何檢測(cè)Flash 中的XSS,每個(gè)人都有自己的方法,無(wú)論是使用成型的自動(dòng)化工具(比如 swfscan)還是自己開(kāi)發(fā)自動(dòng)化工具(先反編譯,再對(duì) actionscript 代碼審計(jì))還是直接人工對(duì)代碼進(jìn)行審計(jì)。都能夠檢測(cè)到 Flash 中存在的 XSS 漏洞。但是這些方法會(huì)存在一些問(wèn)題,如:

自動(dòng)化工具屬于靜態(tài)分析,誤報(bào)比較高,需要投入大量人工精力去加以分析

完全人工效果最好,但是也更加耗費(fèi)精力

在這里我們來(lái)探討一種動(dòng)態(tài)檢測(cè) Flash 中 XSS 的方法,該方法有自己的優(yōu)點(diǎn),但是也有比較明顯的缺點(diǎn),所以本文的標(biāo)題定位于“探討”。

一種自動(dòng)化檢測(cè)Flash中XSS方法的探討

0x01 原理

所謂動(dòng)態(tài)檢測(cè),就是通過(guò)程序加載 Flash 插件,然后再載入 Flash 文件,對(duì)事件和錯(cuò)誤信息進(jìn)行捕捉,再對(duì)信息分析來(lái)判斷 Flash 中是否存在 XSS 漏洞。

先來(lái)看下面兩張圖,以 Firefox 瀏覽器為例:

一種自動(dòng)化檢測(cè)Flash中XSS方法的探討

Firefox 訪問(wèn) http://test.com/xss.swf?alert=1,F(xiàn)lash 成功執(zhí)行 JS 代碼,彈出對(duì)話(huà)框。

一種自動(dòng)化檢測(cè)Flash中XSS方法的探討

Firefox 訪問(wèn) http://test.com/xss.swf?alert=1\",F(xiàn)lash 執(zhí)行 JS 報(bào)錯(cuò),顯示錯(cuò)誤詳細(xì)信息。Firefox 能夠顯示 Flash 執(zhí)行 JS 錯(cuò)誤時(shí)的詳細(xì)錯(cuò)誤信息。

到這里也就明白檢測(cè)的原理了,就是:

◆程序調(diào)用 Firefox

◆Firefox 加載 Flash 插件

◆Firefox 訪問(wèn)對(duì)參數(shù)經(jīng)過(guò)構(gòu)造的 Flash 鏈接,比如 http://test.com/xss.swf?alert=1\"

◆程序捕捉錯(cuò)誤信息或者 alert 事件

◆根據(jù)錯(cuò)誤信息或者 alert 事件信息來(lái)判斷該 Flash 是否存在 XSS 漏洞

0x02 具體實(shí)現(xiàn)

具體如何實(shí)現(xiàn)呢?我們不會(huì)真的調(diào)用 Firefox,而是直接采用一套開(kāi)源的可以解析 JS 的工具包:CasperJS。下面看下 CasperJS 官網(wǎng)的一段介紹:

CasperJS is an open source navigation scripting & testing utility written in Javascript for the PhantomJS WebKit headless browser and SlimerJS (Gecko).

CasperJS 目前支持兩種引擎:PhantomJS(WebKit內(nèi)核)和 SlimerJS(Gecko內(nèi)核)。Gecko內(nèi)核就是 Firefox 所使用的內(nèi)核,又通過(guò) CasperJS 文檔了解到,使用 SlimerJS 引擎時(shí)候可以通過(guò) loadPlugins 來(lái)加載 Flash 插件。

所以我們就可以通過(guò) CasperJS 來(lái)完成我們的功能需求,下面是代碼實(shí)現(xiàn):

flash_detect.js

  1. var casper = require('casper').create({  
  2.     pageSettings: {  
  3.         loadImages:  true,   
  4.         loadPlugins: true // load flash plugin  
  5.     },  
  6.     logLevel: "info",  
  7.     verbose: false 
  8. });  
  9.    
  10. casper.start('about:blank'function() {});  
  11.    
  12. // catch alert   
  13. casper.on('remote.alert'function(message) {  
  14.     this.echo('{"type": "alert", "msg":"' + message + '"}');  
  15. });  
  16.    
  17. // catch page error info  
  18. casper.on('page.error'function(message, trace) {  
  19.         this.echo('{"type": "error", "msg":"' + message + '"}');  
  20. });  
  21.    
  22. var url = casper.cli.get(0);  
  23.    
  24. casper.thenOpen(url, function() {  
  25.         this.wait(2000, function(){})   // delay 2's  
  26. });  
  27.    
  28. casper.run(); 

代碼很簡(jiǎn)單,就是通過(guò) CasperJS 來(lái)訪問(wèn) Flash 文件,然后捕捉頁(yè)面中的錯(cuò)誤信息和 alert 事件。在這里有一點(diǎn)需要注意就是有的 Flash 不會(huì)立即執(zhí)行 JS 代碼,所以我們?cè)诖蜷_(kāi)一個(gè) Flash 文件后,在當(dāng)前的頁(yè)面停留 2 秒。

0x03 執(zhí)行效果

我們剛才那個(gè) Flash 文件用這個(gè)檢測(cè)代碼檢測(cè)下看看效果 ,如下:

  1. piaca at piaca in ~/source$ casperjs --engine=slimerjs flash_detect.js "http://test.com/xss.swf?alert=1" 
  2. {"type""alert""msg":"1"}  
  3.    
  4. piaca at piaca in ~/source$ casperjs --engine=slimerjs flash_detect.js "http://test.com/xss.swf?alert=1\\\"" 
  5. {"type""error""msg":"SyntaxError: missing ) after argument list"

0x04 寫(xiě)在后面的話(huà)

實(shí)際中我通過(guò)訪問(wèn)網(wǎng)上的一些業(yè)務(wù),把其中的 Flash 抓下來(lái),然后通過(guò)程序去檢測(cè),效果還是不錯(cuò)的。當(dāng)然這其中包括我們自己業(yè)務(wù)中的 Flash XSS 漏洞。

但是目前的檢測(cè)程序只能是一個(gè) Demo,要想在生產(chǎn)環(huán)境中使用,還需要解決以下問(wèn)題:

效率:目前是單進(jìn)程單線程進(jìn)行檢測(cè),會(huì)影響檢測(cè)效率,同時(shí)由于 SlimerJS 會(huì)打開(kāi)一個(gè) GUI 窗口,在一定程度上也會(huì)影響效率;

誤報(bào):在 Demo 中我們沒(méi)有過(guò)多的處理錯(cuò)誤信息,所以在實(shí)際測(cè)試中會(huì)有比較多的誤報(bào);

參數(shù):這里的參數(shù)只是 Flash 文件接收的參數(shù),我們通過(guò)日志分析等可以快速獲取業(yè)務(wù)中的 Flash 文件,但是如何獲取 Flash 接收的所有參數(shù)名呢?

上面幾個(gè)問(wèn)題并不是致命的問(wèn)題,我們可以通過(guò)多種方法去解決,但是正如前面所說(shuō)的這個(gè)檢測(cè)程序有個(gè)致命的缺點(diǎn),那就是:

這個(gè)檢測(cè)腳本只能檢測(cè)很明顯的 XSS 漏洞,如果 Flash 中對(duì)參數(shù)有一定的處理措可能就無(wú)法進(jìn)行檢測(cè)了;

所以本文僅僅做自動(dòng)化檢測(cè) Flash 中 XSS 漏洞的探討。

責(zé)任編輯:藍(lán)雨淚 來(lái)源: 烏云知識(shí)庫(kù)
相關(guān)推薦

2018-12-14 14:30:12

安全檢測(cè)布式系測(cè)試

2014-09-19 09:13:16

2018-04-18 07:34:58

2017-12-11 10:40:14

2017-05-02 14:41:00

網(wǎng)絡(luò)釣魚(yú)機(jī)器學(xué)習(xí)社會(huì)工程

2012-01-17 11:02:39

2009-12-23 16:33:34

WPF UI自動(dòng)化測(cè)試

2023-11-03 07:27:19

物聯(lián)網(wǎng)傳感器信息

2021-03-02 10:55:07

云計(jì)算自動(dòng)化云應(yīng)用

2021-03-11 14:23:17

云計(jì)算混合云工具

2009-12-23 16:27:49

WPF UI自動(dòng)化模型

2023-03-20 15:14:39

視覺(jué)回歸測(cè)試軟件開(kāi)發(fā)

2023-10-30 17:41:29

機(jī)器人自動(dòng)化

2022-10-17 15:59:40

Shell腳本終端

2023-09-08 15:29:41

自動(dòng)化人工智能

2025-03-26 08:00:00

2013-12-19 09:23:15

2018-02-25 19:29:49

自動(dòng)化數(shù)字化IT

2015-07-28 13:36:04

2023-01-26 23:46:15

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)