成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

劍走偏鋒:基于靜態檢測的IE漏洞檢測工具IEFuzz

安全
在當下,動態瀏覽器Fuzzer占據著主流,因為它們的運行效率高(純粹是用JavaScript寫的)。然而,當我們在進行動態Fuzzing 的時候,往往面臨著一個共同的問題,就是“異常事件重現”。所以一般我們在構建JS 瀏覽器 Fuzzer時都需要非常仔細,否則在運行過程中可能會由于瀏覽器Fuzzer是動態的,將導致異常事件不可重現。

本文主要分享一款靜態的IE瀏覽器模糊測試工具,該工具被稱為IEFuzz。我們知道,像其他大部分軟件一樣,瀏覽器也往往通過兩種方式進行模糊測試,一種為靜態,另外一種則為動態。

在此前,我們在其他文章中也了解過其他的Fuzzer,如X-Fuzzer,PKAV HTTP Fuzzer,也了解過相關的Fuzzing方法,如從零開始學Fuzzing系列:瀏覽器挖掘框架Morph誕生記等。本文主要講述靜態瀏覽器Fuzzer的情況。

在當下,動態瀏覽器Fuzzer占據著主流,因為它們的運行效率高(純粹是用JavaScript寫的)。然而,當我們在進行動態Fuzzing 的時候,往往面臨著一個共同的問題,就是“異常事件重現”。所以一般我們在構建JS 瀏覽器 Fuzzer時都需要非常仔細,否則在運行過程中可能會由于瀏覽器Fuzzer是動態的,將導致異常事件不可重現。

所以,在Fuzzing之前,我們往往需要考慮以下幾個方面的問題:

1、測試實例(樣本)如何生成?
2、對異常事件如何監控?
3、對于引起異常事件的測試實例如何保存?
4、異常事件如何重現?

對于上述使用動態 Fuzzer面臨的問題,另外一種解決思路是,采用靜態Fuzzer進行檢測。雖然靜態Fuzzer效率較低,但是一般都可以重現異常事件的。

IEFuzz簡介

該靜態IE fuzzer 是用python編寫的,包括使用到以下模塊:

pywin32com ——用于加載或者重載*.html測試實例;

pydbg——用于監控IE瀏覽器的異常事件;

paimei——用于生成異常事件的dump文件,下載鏈接為:paimei。

IEFuzz使用配置

為了能夠順利進行Fuzzing,我們需要在IE設置中做如下更改。

1、首先,因為Fuzzer 需要在本地加載測試實例(如加載路徑為file://c:/fuzzer/testcases/temp.html)所以應該先將IE的ActiveX告警提示關閉,通過如下步驟:

(1)工具->Internet 選項->安全->自定義級別;

(2)隨后將ActiveX告警提示關閉。

2、接著,為了能夠使用 Python win32com來監控IE,我們還需要關閉IE的保護模塊。但是請注意其中的風險。

(1)工具->Internet 選項->安全->受信任的站點:自定義級別為低;

(2)工具->Internet 選項->安全->Internet:自定義級別為中,同時關閉保護模式;

(3)工具->Internet 選項->安全->受限站點:關閉保護模式。

編寫測試實例

首先我們可以基于該fuzzer編寫自己的靜態測試用例生成器。之后可以將其放在/TestCases文件夾中。在GitHub源碼中, 也提供了一個樣本以供參考:’TestCases/SampleTestCase.py。因源碼篇幅較長,鏈接如下,

TestCases/SampleTestCase.py

在編寫測試實例時也請注意,實例中需要包含一個TestCase類以及getFinalTestCase()方法。 getFinalTestCase()方法需要能夠返回完整的 Html頁面。

在動態fuzzer的應用過程中,需要從對象中提取不同的Html元素屬性,然后在運行狀態下進行模糊檢測。而對于一個靜態Fuzzer,我們能夠在我們的python測試實例中預定義html元素以及屬性,并將之作為字典dict。

dict舉例如下:

  1. attr = {'CANVAS':['height','width','getContext', ... , ... , ... ]} 

對于這種屬性生成列表,也提供了一個JavaScript 應用供參考。

  1. <html>     
  2. <head>     
  3. <script>     
  4. /*     
  5. ----------------------------------------------------------------------------     
  6. "THE BEER-WARE LICENSE" (Revision 42):     
  7. <debasishm89_at_gmail.com> wrote this file.  As long as you retain this notice you     
  8. can do whatever you want with this stuff. If we meet some day, and you think     
  9. this stuff is worth it, you can buy me a beer in return.   Debasish Mandal     
  10. ----------------------------------------------------------------------------     
  11. This JS code should be used for generating a python dict. of element attributes of different HTML elements.     
  12. In case of dynamic fuzzer, its usually generated on the fly, since its a static fuzzer you need to pre define html elements and their attributes to your test case.     
  13. Other wise you can use a list of well known attributes. It's completely your choice, how you write your test case.      
  14. */     
  15. function getEleAttributes(ele){     
  16. buff = "['"     
  17. forvar p in ele ){     
  18. buff += p + "','";     
  19. }     
  20. buff = buff.slice(0, -2) + "]";     
  21. return buff     
  22. }     
  23. function generate() {     
  24. /*     
  25. Add your element list in this here and open this html in IE.     
  26. */     
  27. var elements = ["ARTICLE","ASISE","B","BDI","BDO""BLOCKQUOTE","BR","BUTTON","CANVAS","CAPTION","CITE","COL","CODE","COMMAND","DATALIST","DD","DEL","DETAILS","DFN","DL","DT""EM","STYLE","FIELDSET","FIGCAPTION","SCRIPT""EMBED","FIGURE","FOOTER","HEADER","HGROUP","HR","I","INPUT","INS","KEYGEN","KBD","LEGEND","MARK","MENU","METER","NAV","NOSCRIPT","OPTGROUP","OUTPUT","P","PARAM","PRE","PROGRESS","Q","RP","RT","RUBY","S","SAMP","SECTION","SELECT","SMALL","SOURCE","SPAN","SUP","TH","THEAD","TIME","OBJECT","IFRAME","TEXTAREA","TRACK","U","VAR","WBR","FORM","A","BODY","HTML","DIV","TABLE","AREA","TD","TR","LINK","BASE","FONT","HEAD","IMG","MAP","META","OL","LI","TBODY","TITLE","H1","BLINK","AREA","COL","SPAN","FRAMESET","FRAME","UL","OPTION","NOFRAMES","TFOOT","XMP","ISINDEX","CENTER","HR","LABEL","OPTGROUP","AUDIO","VIDEO","TEMPLATE","SVG"]     
  28. main_buff = "ele_dict = {"     
  29. for (ele in elements){     
  30. var id_0 = document.createElement( elements[ele] );     
  31. all_props = getEleAttributes(id_0)     
  32. main_buff += "'"+elements[ele]      
  33. main_buff += "':"     
  34. main_buff += all_props     
  35. main_buff += ","     
  36. }     
  37. main_buff = main_buff.slice(0,-1)     
  38. main_buff += "}"     
  39. document.getElementById('result').innerHTML = main_buff;     
  40. }     
  41. </script>     
  42. </head>     
  43. <body onload='generate();'>     
  44. <b>Output : (Copy paste following python dictionary to your testcase generator script and fuzz using them )</b></br><textarea id="result" rows="100" cols="200"></textarea>     
  45. </body>     
  46. </html> 

參考鏈接為:Generate_Elements_Dict.html

IEFuzz運行步驟

那么IEFuzz 是如何運行的?請參考往下步驟:

1、啟動IE;
2、將iexplore.exe進程掛載到 Debugger(pydbg) 中,然后對其父進程以及子進程所有類型的事件進行監控;
3、生成一個靜態實例(Html + JavaScript);
4、通過win32COM加載該靜態實例到本地(如file://c:/fuzzer/testcases/temp.html)
5、如果沒有產生異常事件,那么就需要重新生成一個Html測試實例,然后再使用win32COM (python模塊)進行重載。(在這里先不關閉IE或者重新打開IE。可以說,我們只是重新刷新了頁面,但是頁面的代碼或者內容是不同的,這也給測試節省了時間);
6、在出現異常事件時,先復制或者保存測試實例到一個單獨的文件夾,然后再關閉IE進程;
7、返回步驟1。

參考鏈接為:Generate_Elements_Dict.html

責任編輯:何妍 來源: FreeBuf
相關推薦

2011-05-11 10:00:57

2015-04-02 16:26:39

漏洞檢測工具Kadimus

2015-04-27 15:49:21

2022-01-27 09:16:08

CPU內存.NET

2021-03-29 11:40:17

檢測工具Trivy應用

2014-04-15 17:03:00

2009-06-03 14:15:34

2015-08-17 15:10:11

漏洞檢測安全工具LFI scanner

2015-03-13 09:10:29

2021-04-14 08:20:46

Lighthouse工具性能檢測

2014-02-27 17:17:56

RSA2014內部威脅威脅檢測

2010-06-04 10:09:29

Linux 性能檢測

2010-06-04 10:30:15

Linux 性能檢測

2011-01-11 13:58:32

WebLog ExpeWEB服務器流量記錄

2012-06-20 10:18:00

2021-07-01 05:17:52

Windows 11操作系統微軟

2021-10-22 09:40:59

開源技術 工具

2009-12-17 17:31:10

2021-12-13 16:16:42

Java開發工具

2022-03-25 14:11:11

Java死鎖線程
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲国产成人av好男人在线观看 | 性高湖久久久久久久久aaaaa | 羞羞视频在线观免费观看 | 亚洲一区二区三区免费视频 | 狠狠的日 | 岛国毛片 | 亚洲美女在线一区 | 亚洲精品一区二区三区 | 日韩欧美在线观看视频 | 国产视频久 | 国产精品一区一区 | 一区二区在线免费观看 | 99久久99久久精品国产片果冰 | 亚洲精品一区二区 | 国产免费黄网 | 亚洲一区二区在线电影 | 国产高清免费视频 | 精品欧美一区二区三区精品久久 | 人人干人人艹 | 成人在线免费网站 | 99久久日韩精品免费热麻豆美女 | 日一区二区 | 盗摄精品av一区二区三区 | 国产乱人伦| 欧美乱人伦视频 | 成人久久久 | 国产成人高清视频 | 日本成人三级电影 | 欧美国产日韩精品 | 麻豆久久| 天天操夜夜看 | 午夜影院视频在线观看 | 亚洲人成人一区二区在线观看 | 亚洲一区二区免费 | 亚洲综合一区二区三区 | 91精品无人区卡一卡二卡三 | 国产区精品在线观看 | 欧美群妇大交群中文字幕 | 国产成人免费网站 | 在线日韩欧美 | 日韩欧美在线不卡 |