FUZZ測試方法介紹


FUZZ測試方法介紹 - tester的日志 - 網易博客

FUZZ測試方法介紹   

2011-07-18 14:43:52|  分類: 測試思想 |  標簽:  |字號  訂閱

Fuzz這個名詞來自於Professor Barton Miller。在1989年一個風雨交加的夜晚,他登陸一台自己的主機,不知道怎么回事,信號通過貓傳到主機上,雷電一閃,把里面的高位變低位,低位至高位了,結果到了主機以后改變了。他突發奇想,把這種方式作為一種測試的方式來做。

1、到底什么是Fuzz Test?

Generally speaking fuzz is a brute force method which used to break software,就是用大量的測試用例一個一個試,盡可能多的找出有可能出問題的地方。

2、Fuzz怎么工作?

現在有無數有名的Fuzz工具,有很多人很多還在寫,一般包括四個部分。

(1)Generate lots of malformed data as test cases,要生成大量的測試用例。這個測試用力是malformed的,一個軟件首先要找到輸入點,然后把數據丟進去,這個數據有可能是一個文件,有可能是一個數據包,有可能是測試表里面的一個項,有可能是臨時文件里面的一個東西,總之是一種數據,要定義malformed這種非正常的數據。

(2)Drop the test cases into product,把它丟進去,看這個產品怎么反應。

(3)Monitor and log any crash/exception triggered by malicious input.

(4)Review the test log, investigated deeply.

3、Fuzz在各個平台上的一個測試情況 

FUZZ測試方法介紹

 

Linux平台上的報告

FUZZ測試方法介紹

Mac上的一些應用測試情況

FUZZ測試方法介紹

數據說明一切,這些數據說明了fuzz在測試中的價值。

 

FUZZ應用

我在函數庫中增加了一個fuzz工具,是用來fuzz http接口的。采用的是比較好用wfuzz

http://www.edge-security.com/wfuzz.php

 

加載函數庫后,直接使用wfuzz命令即可。

程序運行,依賴pycurllibcurl,如果提示有問題,請安裝這兩個庫解決。

 

 

FUZZ測試方法介紹

Fuzz isearch的請求

FUZZ測試方法介紹

Fuzz isearch的關鍵詞查詢。可以支持詞典窮舉。可以特殊字符寫成文件的形式可以加進來

FUZZ測試方法介紹


Fuzz的自定義改進

可以增加對結果的解析

FUZZ測試方法介紹

Fuzz思想的延伸

Fuzz其實就是一個縮微版的自動化測試框架。

只不過他的測試數據,支持隨機與特定的規則。Fuzz的判斷依據,更簡單而已。只是簡單的異常情況。

這點上,我們可以進行充分的擴充,比如支持doc格式的判斷,提取里面的某些字段判斷等。

 

我們也可以在此理論基礎上去合理的使用我們的框架。比如UI自動化一樣,如果pwatir寫出來的代碼,支持query從文件中讀取,那么就可以隨意的構造Query了。

如果gtest寫出的單元測試框架,可以支持從文件,或者數據庫讀取TC數據。那么fuzz也很容易實現。

同樣日志對比腳本,也可以實現fuzz

 

 

此次介紹的是fuzz http協議。當然fuzz不僅支持這些,還支持其他的協議,以及執行方式。

比如fuzz c++代碼來生成自動化的單元測試。

 

另外,也並不是任何地方都適合fuzz測試,需要根據場景選擇。比如算法組的某些算法,為了提升效率,是會犧牲一些邊緣的異常處理的。

如果是對外的Query或者接口,是有必要做的。比如isearch的查詢,seachwebp4p的接口。

 

其他fuzz工具

推薦一個可以方便hack的工具,ruby編寫,可以很容易開發自定義的fuzz。非常好用。

當然也可以使用上面介紹的wfuzz,采用python編寫的。

http://rfuzz.rubyforge.org/index.html

FUZZ測試方法介紹

網上也有N多的fuzz工具集合與說明,大家可以自己Google

 

其他文章

 

http://www.aqualab.cs.northwestern.edu/HotWeb08/papers/Hammersland-FTW.pdf

http://www.edge-security.com/wfuzz.php

http://huaidan.org/archives/3261.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM