自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

一種自動化檢測Flash中XSS方法的探討

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

0x00 前面的話

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

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

完全人工效果最好,但是也更加耗費精力

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

一種自動化檢測Flash中XSS方法的探討

0x01 原理

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

先來看下面兩張圖,以 Firefox 瀏覽器為例:

一種自動化檢測Flash中XSS方法的探討

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

一種自動化檢測Flash中XSS方法的探討

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

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

◆程序調(diào)用 Firefox

◆Firefox 加載 Flash 插件

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

◆程序捕捉錯誤信息或者 alert 事件

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

0x02 具體實現(xiàn)

具體如何實現(xiàn)呢?我們不會真的調(diào)用 Firefox,而是直接采用一套開源的可以解析 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)核,又通過 CasperJS 文檔了解到,使用 SlimerJS 引擎時候可以通過 loadPlugins 來加載 Flash 插件。

所以我們就可以通過 CasperJS 來完成我們的功能需求,下面是代碼實現(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(); 

代碼很簡單,就是通過 CasperJS 來訪問 Flash 文件,然后捕捉頁面中的錯誤信息和 alert 事件。在這里有一點需要注意就是有的 Flash 不會立即執(zhí)行 JS 代碼,所以我們在打開一個 Flash 文件后,在當前的頁面停留 2 秒。

0x03 執(zhí)行效果

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

  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 寫在后面的話

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

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

效率:目前是單進程單線程進行檢測,會影響檢測效率,同時由于 SlimerJS 會打開一個 GUI 窗口,在一定程度上也會影響效率;

誤報:在 Demo 中我們沒有過多的處理錯誤信息,所以在實際測試中會有比較多的誤報;

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

上面幾個問題并不是致命的問題,我們可以通過多種方法去解決,但是正如前面所說的這個檢測程序有個致命的缺點,那就是:

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

所以本文僅僅做自動化檢測 Flash 中 XSS 漏洞的探討。

責任編輯:藍雨淚 來源: 烏云知識庫
相關推薦

2018-12-14 14:30:12

安全檢測布式系測試

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)絡釣魚機器學習社會工程

2012-01-17 11:02:39

2023-11-03 07:27:19

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

2021-03-02 10:55:07

云計算自動化云應用

2009-12-23 16:33:34

WPF UI自動化測試

2021-03-11 14:23:17

云計算混合云工具

2009-12-23 16:27:49

WPF UI自動化模型

2023-03-20 15:14:39

視覺回歸測試軟件開發(fā)

2023-10-30 17:41:29

機器人自動化

2022-10-17 15:59:40

Shell腳本終端

2023-09-08 15:29:41

自動化人工智能

2025-03-26 08:00:00

2018-02-25 19:29:49

自動化數(shù)字化IT

2013-12-19 09:23:15

2015-07-28 13:36:04

2023-01-26 23:46:15

點贊
收藏

51CTO技術棧公眾號