目錄
模糊測試(fuzzing)介紹
模糊測試流程
基本要求
存在的問題輸入
數據的關聯分析
測試用例集的構建方法
測試異常分析
模糊測試框架
比較好的開源Fuzzers
文件格式Fuzzers
網絡協議Fuzzers
通用類型Fuzzers
瀏覽器Fuzzers
驅動&內核Fuzzers
Cloud Fuzzers
FuzzersFuzzing輔助工具
汙點分析
符號執行
Debuggers
反編譯工具
漏洞程序
Fuzzing樣本文件
測試用例去重
Fuzzing實戰分析
fuzz原理/方法
fuzz文件格式
fuzz瀏覽器
fuzz網絡協議
fuzz系統/內核
fuzz文本處理
fuzz編譯器/解釋器
fuzz硬體/IOT
fuzz安卓/移動端
fuzz虛擬化軟體
fuzzWeb APP
Fuzzing Paper
NDSS
S&P
USEC
ACM CCS
人工智慧與機器學習Fuzzing
Fuzzing 書籍
Fuzzing 教程
從Fuzzing到漏洞利用
Peach Fuzzer相關教程
AFL Fuzzer相關教程
libFuzzer Fuzzer相關教程
Spike Fuzzer相關教程
參考信息
模糊測試(fuzzing)是一種通過向程序提供非預期的輸入並監控輸出中的異常來發現軟體中的故障的方法。
用於模糊測試的模糊測試器(fuzzer)分為兩類:
模糊測試流程模糊測試通常包含下面幾個基本階段:
確定測試目標:確定目標程序的性質、功能、運行條件和環境、編寫程序的語言、軟體過去所發現的漏洞信息以及與外部進行交互的接口等
確定輸入向量:例如文件數據、網絡數據和環境變量等。
生成模糊測試數據:在確定輸入向量之後設計要模糊測試的方法和測試數據生成算法等
執行模糊測試數據:自動完成向測試目標發送大量測試數據的過程,包括啟動目標進程、發送測試數據和打開文件等
監視異常:監視目標程序是否產生異常,記錄使程序產生異常的測試數據和異常相關信息
判定發現的漏洞是否可被利用:通過將產生異常的數據重新發送給目標程序,跟蹤異常產生前後程序相關的處理流程,分析異常產生的原因,從而判斷是否可利用
基本要求要實現高效的模糊測試,通常需要滿足下面幾個方面的要求:
可重現性:測試者必須能夠知道使目標程序狀態變化所對應的測試數據是什麼,如果不具備重現測試結果的能力,那麼整個過程就失去了意義。實現可重現性的一個方法是在發送測試數據的同時記錄下測試數據和目標程序的狀態
可重用性:進行模塊化開發,這樣就不需要為一個新的目標程序重新開發一個模糊測試器
代碼覆蓋:指模糊測試器能夠使目標程序達到或執行的所有代碼及過程狀態的數量
異常監視:能夠精確地判定目標程序是否發生異常非常的關鍵
存在的問題模糊測試中存在的問題:
具有較強的盲目性:即使熟悉協議格式,依然沒有解決測試用例路徑重複的問題,導致效率較低
測試用例冗餘度大:由於很多測試用例通過隨機策略產生,導致會產生重複或相似的測試用例
對關聯欄位的針對性不強:大多數時候只是對多個元素進行數據的隨機生成或變異,缺乏對協議關聯欄位的針對性
輸入數據的關聯分析
通常情況下,應用程式都會對輸入的數據對象進行格式檢查。通過分析輸入到程序的數據對象的結構以及其組成元素之間的依賴關係,構造符合格式要求的測試用例從而繞過程序格式檢查,是提高模糊測試成功率的重要步驟。
應用程式的輸入數據通常都遵循一定的規範,並具有固定的結構。例如:網絡數據包通常遵守某種特定的網絡協議規範,文件數據通常遵守特定的文件格式規範。輸入數據結構化分析就是對這些網絡數據包或文件格式的結構進行分析,識別出特定的可能引起應用程式解析錯誤的欄位,有針對性地通過變異或生成的方式構建測試用例。通常關注下面幾種欄位:表示長度的欄位、表示偏移的欄位、可能引起應用程式執行不同邏輯的欄位、可變長度的數據等。
應用程式所能處理的數據對象是非常複雜的。例如 MS Office 文件是一種基於對象嵌入和連結方式存儲的複合文件,不僅可以在文件中嵌入其他格式的文件,還可以包含多種不同類型的元數據。這種複雜性導致在對其進行模糊測試的過程中產生的絕大多數測試數據都不能被應用程式所接受。數據塊關聯模型是解決這一問題的有效途徑。該模型以數據塊為基本元素,以數據塊之間的關聯性為紐帶生成畸形測試數據。其中,數據塊是數據塊關聯模型的基礎。通常一個數據對象可以分為幾個數據塊,數據塊之間的依賴關係稱為數據關聯。
數據塊的劃分通常遵循三個基本原則:
使數據塊之間的關聯性儘可能的小
將具有特定意義的數據劃分為一個數據塊
將一段連續且固定不變的數據劃分為同一個數據塊
數據塊關聯模型的劃分:
測試用例集的構建方法常見的構建方法有以下幾種:
隨機方法:簡單地產生大量偽隨機數據給目標程序。
強制性測試:模糊測試器從一個有效的協議或數據格式樣本開始,持續不斷地打亂數據包或文件中的每一個字節、字、雙字或字符串。
預先生成測試用例:對一個專門規約的研究,以理解所有被支持的數據格式和每種數據格式可接受的取值範圍,然後生成用於測試邊界條件或迫使規約發生違例的硬編碼的數據包或文件。
遺傳算法:將測試用例的生成過程轉化為一個利用遺傳算法進行數值優化的問題,算法的搜索空間即為待測軟體的輸入域,其中最優解即為滿足測試目標的測試用例。首先,使用初始數據和種子生成數據,然後對數據進行測試和評估,並監控測試過程,如果滿足測試終止的條件,就輸出測試結果,否則通過選擇、雜交、變異生成新的數據。
錯誤注入與模糊啟發式
邊界整型值:整型值上溢、下溢、符號溢出等。
字符串重複:堆棧溢出等。
欄位分隔符:將非字母數字字符如空格、制表符等隨機地包含到模糊測試字符串中。
格式化字符串:最好選擇 "%s"、"%n" 等包含到字符串中。
字符轉換和翻譯:特別關注對擴展字符的處理。
目錄遍歷:在URL中附加 "../" 之類的符號將導致攻擊者訪問未授權的目錄。
命令注入:向 "exec()"、"system()" 之類的 API 調用傳遞未經過濾的用戶數據。
測試異常分析在程序動態分析過程中,相關信息的獲取途徑有下面幾種:
通過程序的正常輸出獲取信息
通過靜態代碼插樁獲取信息
通過動態二進位插樁獲取信息
通過虛擬機獲取信息
通過調試接口或者調試器獲取信息
模糊測試框架模糊測試框架是一個通用的模糊器,可以對不同類型的目標進行模糊測試,它將一些單調的工作抽象化,並且將這些工作減少到最低程度。通常模糊測試框架都包含以下幾個部分:
模糊測試數據生成模塊
動態調試模塊:利用作業系統提供的調試接口來實現動態調試功能,以捕獲被調試程序產生的異常信息
執行監控模塊:在動態調試模塊的基礎上,在被調試程序運行過程中,實現對被調試程序執行狀態的監控,從而決定什麼時候終止被調試程序的運行
自動腳本模塊:在執行監控模塊的基礎上,提供更複雜的監控功能
異常過濾模塊:在動態調試模塊的基礎上,對異常產生的結果實時過濾
測試結果管理模塊:測試結果資料庫中除了異常信息之外,產生異常的畸形數據也會被保存。利用測試結果資料庫,可以實現回歸測試。
可幫助fuzzing文件格式的Fuzzers,如PDF,MP3,SWF等
MiniFuzz
Microsoft提供的基本文件格式模糊測試工具。(Microsoft網站上不再提供)。
https://web.archive.org/web/20140512203517/http://download.microsoft.com/download/D/6/E/D6EDC908-A1D7-4790-AB0B-66A8B35CD931/MiniFuzzSetup.msi
AFL Fuzzer
僅適用於Linux,American Fuzzy Lop Fuzzer 由Michal Zalewski aka lcamtuf發布
http://lcamtuf.coredump.cx/afl/
WinAFL
Linux下的智能模糊測試神器afl-fuzz的Windows版本
https://github.com/ivanfratric/winafl
AFLFast
加速版的AFL,Fuzzing速度確實會比原版快一些。
https://github.com/mboehme/aflfast
afl-unicorn
採用Unicorn模擬指令的AFL,支持Linux閉源程序
https://github.com/tigerpuma/Afl_unicorn
pe-afl
通過靜態插樁實現針對Windows閉源程序的覆蓋引導的AFL Fuzzer,支持用戶層應用和內核驅動
https://github.com/wmliang/pe-afl
kAFL
支持QEMU虛擬機下的系統內核Fuzzing的AFL,適用於Linux、macOS與Windows
https://github.com/RUB-SysSec/kAFL/
TriforceAFL
基於QEMU全系統模擬的AFL,藉助系統仿真器實現分支信息跟蹤,支持Linux內核Fuzzing
https://github.com/nccgroup/TriforceAFL
Vuzzer
支持閉源程序的覆蓋引導Fuzzer,使用LibDFT的pin工具實現數據流追蹤,結合動靜態分析,以獲取更多的代碼路徑,比如比較語句中的比較值,它會先作記錄,再未來變異時使用。
https://github.com/vusec/vuzzer
Shellphish Fuzzer
AFL的Python接口,允許注入測試用例和其他功能
https://github.com/shellphish/fuzzer
TriforceAFL
AFL的修改版本,它支持原始碼不可用的應用程式的模糊測試
https://www.nccgroup.trust/uk/about-us/newsroom-and-events/blogs/2016/june/project-triforce-run-afl-on-everything/
Peach Fuzzer
一款智能模糊測試工具, 廣泛用於發現軟體中的漏洞和缺陷,它有兩種主要模式,基於生長的模糊測試和基於變異的模糊測試
https://sourceforge.net/projects/peachfuzz/
FOE
針對Windows應用程式的基於文件突變的fuzz測試工具
https://github.com/secfigo/Awesome-Fuzzing/blob/master/www.cert.org/vulnerability-analysis/tools/foe.cfm)
rmadair
基於文件突變的fuzz測試工具,使用PyDBG來監測感興趣的信號
http://rmadair.github.io/fuzzer/
honggfuzz
支持基於代碼覆蓋的feedback-driven fuzzing。同時支持GNU/Linux,FreeBSD,Mac OSX和Android系統。
https://github.com/google/honggfuzz
zzuf
一個透明應用程式輸入fuzzer。它通過攔截文件操作並更改程序輸入中的隨機位來工作。
https://github.com/samhocevar/zzuf
radamsa
通用型fuzzer和測試用例生成器。
https://github.com/aoh/radamsa
binspector
二進位格式分析和模糊測試工具
https://github.com/binspector/binspector
網絡協議Fuzzers可幫助fuzzing使用基於網絡協議(如HTTP, SSH, SMTP等)的應用程式Fuzzers。
Peach Fuzzer
一款智能模糊測試工具, 廣泛用於發現軟體中的漏洞和缺陷,它有兩種主要模式,基於生長的模糊測試和基於變異的模糊測試。
https://sourceforge.net/projects/peachfuzz/
Sulley
由多個可擴展組件組成的fuzzer開發和模糊測試框架。
https://github.com/OpenRCE/sulley
boofuzz
Sulley框架的分支和繼承。
https://github.com/jtpereyda/boofuzz
Spike
一個fuzzer開發框架。
http://www.immunitysec.com/downloads/SPIKE2.9.tgz
Nightmare
帶有Web管理的分布式模糊測試套件,支持使用網絡協議進行模糊測試。
https://github.com/joxeankoret/nightmare
通用類型Fuzzers一些通用的可以對文件,庫,網絡協議,等進行Fuzzing的工具。
libFuzzer
C/C++編寫的目標進程內覆蓋引導漸進式fuzzing引擎,進程內覆蓋率引導的開源的fuzz引擎庫,屬於llvm的一部分,在各大主流開源庫中,以及Google內部最經常用的安全測試工具
http://llvm.org/docs/LibFuzzer.html
ClusterFuzzer
Google開源的可擴展的Fuzzing基礎設施
https://github.com/google/clusterfuzz
OSS-Fuzz
基於LibFuzzer的開源軟體Fuzzer集合,實現docker下自動下載、編譯安裝及運行
https://github.com/google/oss-fuzz
honggfuzz
Google開發的基於軟硬體的覆蓋驅動型Fuzzer,單純暴力Fuzz的效果也挺好的,支持多平臺,包括Linux\macOS\Windows\Android
https://github.com/google/honggfuzz
Choronzon
一個革命性的基於知識庫的模糊測試框架。
https://github.com/CENSUS/choronzon
QuickFuzz
一個語法模糊器,由QuickCheck,模板Haskell和Hackage的特定庫生成許多複雜的文件格式,如Jpeg,Png,Svg,Xml,Zip,Tar等。
https://github.com/CIFASIS/QuickFuzz
gramfuzz
一種基於語法的模糊器,可以讓您定義複雜的語法來為文本和二進位數據格式建模。
https://github.com/d0c-s4vage/gramfuzz
ansvif
用於查找C/C++代碼中的漏洞的高級跨平臺模糊測試框架。
https://oxagast.github.io/ansvif/
瀏覽器Fuzzersdharma
基於語法模板生成的Fuzzer,由Mozilla開源的用於Fuzz Firefox JS引擎
https://github.com/MozillaSecurity/dharma
Fuzzilli
基於語法變異的JavaScript引擎Fuzzer,先通過語法模板生成測試用例,再生成中間語法進行變異,結合覆蓋率引導以觸發更多代碼路徑
https://github.com/googleprojectzero/fuzzilli
ChromeFuzzer
基於grinder語法生成器改裝的Chrome瀏覽器Fuzzer
https://github.com/demi6od/ChromeFuzzer
funfuzz
Mozilla開源的JS fuzzer工具集合,主要用於Fuzz SpiderMonkey
https://github.com/MozillaSecurity/funfuzz
domator
Project Zero團隊開源的DOM Fuzzer,用python實現基於模板生成的Fuzzer
https://github.com/googleprojectzero/domato
驅動&內核FuzzersKernelFuzzer
跨平臺內核Fuzzer框架,不開源策略,只在其paper中提及變異策略,需要自己實現,支持Windows、OSX和QNX系統,但只提供Windows編譯腳本
https://github.com/mwrlabs/KernelFuzzer
OSXFuzzer
基於LibFuzzer的開源軟體Fuzzer集合,實現docker下自動下載、編譯安裝及運行
https://github.com/google/oss-fuzz
syzkaller
基於覆蓋率引導的Linux內核Fuzzer,需要基於其模板語法實現API調用模板,提供給syzkaller進行數據變異,也曾被移植到其它平臺
https://github.com/google/syzkaller
PassiveFuzzFrameworkOSX
通過Hook實現被動式的OSX內核Fuzzer
https://github.com/SilverMoonSecurity/PassiveFuzzFrameworkOSX
Razzer
內核競爭條件漏洞Fuzzer
https://github.com/compsec-snu/razzer
ViridianFuzzer
用於Fuzzing Hyper-V hypercalls的內核驅動,由MWRLabs公司出品
https://github.com/mwrlabs/ViridianFuzzer
Bochspwn
基於Boch插樁API實現Double Fetches內核漏洞的檢測
https://github.com/googleprojectzero/bochspwn
Bochspwn-reloaded
基於Boch插樁API實現內核信息洩露的檢測
https://github.com/googleprojectzero/bochspwn-reloaded
Cloud Fuzzers在雲環境中幫助fuzzing測試的Fuzzers。
Cloudfuzzer
雲fuzzing框架,可以輕鬆在雲環境中運行自動化模糊測試。
https://github.com/ouspg/cloudfuzzer
PANDA:構建於QEMU系統上的新一代動態分析平臺
https://github.com/moyix/panda
QIRA:QEMU交互式運行時分析器
http://qira.me/
kfetch-toolkit:執行高級記錄引用的工具
https://github.com/j00ru/kfetch-toolkit
符號執行Z3:屬於SMT Solver,用於判定First Order Logic公式的可滿足性。
https://github.com/Z3Prover/z3
Debuggers[Windbg](https://docs.microsoft.com/en-us/windows-hardware/drivers/debugger/debugger-download-tools) – windows平臺下強大的用戶態和內核態調試工具。
[Immunity Debugger](http://debugger.immunityinc.com/)- 專門用於漏洞利用程序的開發,輔助漏洞挖掘以及惡意軟體分析的調試器。
[OllyDbg](http://www.ollydbg.de/) – 動態調試工具。
[Mona.py](https://github.com/corelan/mona/)(windbg和Immunity dbg的插件)
[x64dbg](https://github.com/x64dbg/) – 用於Windows的開源x64/x32調試器。
[GDB – Gnu調試器](http://www.sourceware.org/gdb/) – Linux調試器。
[PEDA](https://github.com/longld/peda) – 針對GDB的Python Exploit開發助手。
[Radare2](http://www.radare.org/r/) – 用於逆向工程和二進位文件分析的框架。
反編譯工具
[IDA Pro](https://www.hex-rays.com/products/ida/index.shtml)- 最好的反編譯軟體
[binnavi](https://github.com/google/binnavi) – 二進位分析IDE,注釋控制流程圖和調用反編譯代碼的圖形。
[Capstone](https://github.com/aquynh/capstone) – Capstone是一個輕量級的多平臺,多架構反編譯框架。
漏洞程序
Exploit-DB -[ https://www.exploit-db.com](https://www.exploit-db.com/)(通過搜索相關的應用漏洞,並自行下載漏洞應用及EXP重現漏洞)
PacketStorm - <https://packetstormsecurity.com/files/tags/exploit/>
[Fuzzgoat](https://github.com/fuzzstati0n/fuzzgoat) - 用於測試fuzzers的漏洞C程序。
Fuzzing樣本文件
https://files.fuzzing-project.org/
[來自Mozilla的PDF測試語料庫](https://github.com/mozilla/pdf.js/tree/master/test/pdfs)
[MS Office文件格式文檔](https://www.microsoft.com/en-us/download/details.aspx?id=14565)
https://github.com/google/fuzzer-test-suite – fuzzing引擎測試集。
https://dev-www.libreoffice.org/corpus/ 包含常見的office 格式,docx,pptx,xlsx等等。
http://cd.textfiles.com/fantaziasampler/
https://download.osgeo.org/geotiff/samples/
測試用例去重
afl 自帶的 afl-cmin 和 afl-tmin
https://blog.regehr.org/archives/1284 樣本精簡工具
https://github.com/MozillaSecurity/lithium 基於行的測試樣例精簡工具
https://github.com/googleprojectzero/halfempty 快速、並行的測試樣例精簡工具
https:
結構感知fuzz
https:
afl-fuzz不同文件系統
https:
https:
提升fuzz速度
https:
VrankenFuzz
https:
泉哥honggfuzz原理系列文章
https:
afl源碼詳解
https:
afl原理詳解
https:
driller,angr和AFL讀碼筆記以及測試例
https:
持續化的fuzz
https:
afl+jenkins 搭建fuzz 流程
https:
in-process fuzz
https:
修改編譯器增加fuzz 覆蓋率
https:
提升afl fuzz 速度(256 threads)
https:
高速fuzz
https:
使用靜態分析改進覆蓋率導向的fuzz
https:
雲fuzz發現安全漏洞
https:
機器學習+基於生成的 cloudfuzz
https:
api fuzz和文件fuzz的對比
https:
有目標的fuzz觸發 MS16-030
https:
dragonltx的peach系列教程
https:
peachfuzz教程
https:
afl-fuzz test
https:
aflfuzz教程
https:
afl-fuzz
http:
aflfuzz教程其中有關於afl原理的介紹
https:
一篇詳細講解關於afl-fuzz工作流程的文章
http:
fuzz在 非主流漏洞挖掘中的應用
https:
關於fuzz的一點思考
https:
fuzz測試服務
https:
clusterfuzzgooglechrome
https:
infiltrate上的關於fuzz的議題
http:
自動定位fuzz過程中crash的根本原因
https:
afl-analyze工具介紹
https:
afl-unicorn fuzz任意二進位代碼
https:
好的fuzz研究是什麼樣的
https://bbs.pediy.com/thread-249912.htm
afl fuzz upx
https://bbs.pediy.com/thread-248622.htm
honggfuzz fuzz Apache httpd
https://research.checkpoint.com/extracting-code-execution-from-winrar/
winafl fuzz WinRAR
https://research.checkpoint.com/50-adobe-cves-in-50-days/
winafl fuzz adobe reader
https://blog.path.network/fuzzing-cs-go-bsp-files/
BFF fuzz csgo bsp 文件
https://github.com/knownsec/KCon/blob/master/2018/26%E6%97%A5/26%E6%97%A5No.10-PDF%20%20JS%E5%BC%95%E6%93%8E%E4%BA%A4%E4%BA%92%E5%BC%8FFuzzing-%E9%BB%91%E5%93%A5%26swan.pdf
pdf 交互式引擎 fuzz
https://blahcat.github.io/2018/03/11/fuzzing-arbitrary-functions-in-elf-binaries/
fuzz elf 文件二進位中的 任意函數
https://www.zerodayinitiative.com/blog/2017/10/17/wrapping-the-converter-within-foxit-reader
zdi fuzz Adobe Reader
https://symeonp.github.io/2017/09/17/fuzzing-winafl.html
winafl fuzz msxml6
https://github.com/lcatro/Fuzzing-ImageMagick
fuzz ImageMagick
https://blog.adacore.com/running-american-fuzzy-lop-on-your-ada-code
fuzz Zip-Ada 壓縮類庫
https://www.zerodayinitiative.com/blog/2017/5/4/auditing-adobe-reader-the-open-source-attack-surface-in-closed-source-software
Adobe Reader 閉源軟體中開源軟體攻擊面
https://da-data.blogspot.com/2017/01/finding-bugs-in-tensorflow-with.html
fuzz TensorFlow
https://www.peter.hartmann.tk/single-post/2016/11/29/Fuzzing-Qt-with-libFuzzer
libfuzzer fuzz qt
https://int21.de/slides/qtcon-fuzzing
afl + asan fuzz 教程
https://mgba.io/2016/09/13/fuzzing-emulators/
fuzz 模擬器 、以及很多其他的東西
https://security.tencent.com/index.php/blog/msg/35
漫談漏洞挖掘之文件解析型漏洞 -- by TSRC
http://www.agarri.fr/kom/archives/2013/02/25/mutation-based_fuzzing_of_xslt_engines/index.html
基於變異的 XSLT 引擎 fuzz
http://caolanm.blogspot.com/2015/10/finding-ui-crashes-by-fuzzing-input.html
afl fuzz 基於輸入事件的 UI 崩潰
https://foxglovesecurity.com/2016/06/13/finding-pearls-fuzzing-clamav/
fuzz 開源反病毒引擎
https://www.kitploit.com/2018/11/bfuzz-fuzzing-browsers-chrome-firefox.html
bfuzz fuzz 瀏覽器
https://bugid.skylined.nl/20181017001.html
fuzz 瀏覽器(domato)
http://blog.ret2.io/2018/07/25/pwn2own-2018-safari-sandbox/
fuzz Safari
https://sigpwn.io/blog/2018/5/13/adding-afl-bloom-filter-to-domato-for-fun
afl + domato fuzz IE 11
https://drive.google.com/file/d/0B4ZwSwfSILSIcWhzY1NnY0lrNEk/view
fuzz 瀏覽器尋找可利用的漏洞
https://sensepost.com/blog/2015/wadi-fuzzer/
wadi 瀏覽器 fuzzer
http:
fuzz tcp 伺服器
http:
fuzz ssh 客戶端
https:
fuzz janus
https:
fuzz Apache Httpd
https:
fuzz openvpn
https:
fuzz Apache Httpd
https:
使用 scrapy、radamsa 和 pcaps fuzz 專有協議
https:
fuzz Apache httpd
https:
http:
fuzz openssl
https:
fuzz mbed tls 庫
https:
fuzz dns
https:
fuzz Apache Http2 伺服器
https:
fuzz dnsmasq
https:
cloudflare fuzz 基於go 語言開發的 dns 伺服器的 parser
https:
以太坊 智能 fuzzer
https:
https:
IOCTL fuzz
http:
syzkaller fuzz usb
https:
fuzz linux 內核 驅動
https:
科恩 windows 內核fuzz
https:
內核 fuzz
https:
win32k fuzz
https:
覆蓋率引導的內核 fuzz --syzkaller
https://sigpwn.io/blog/2018/1/29/using-winafl-to-fuzz-hangul-appshield
winafl fuzz hwp(韓國字處理程序)
https://kciredor.com/fuzzing-adobe-reader-for-exploitable-vulns-fun-not-profit.html
winafl fuzz adobe reader
https://github.com/0xSobky/HackVault/wiki/Regaxor:-Fuzzing-Regexes-for-Fun-and-Not%E2%80%90So%E2%80%90Much-Profit
fuzz 正則表達式
https://j00ru.vexillium.org/2015/09/44c······on-slides-and-details-about-further-windows-kernel-font-vulnerabilities/
windows 內核 字體fuzz
https://yahoo-security.tumblr.com/post/123981052855/font-parsing-vulnerabilities
字體 fuzz
https://www.evonide.com/fuzzing-unserialize/
fuzz 反序列化
https://grepharder.github.io/blog/0x03_learning_about_universal_links_and_fuzzing_url_schemes_on_ios_with_frida.html
fuzz URL
https://portswigger.net/blog/unearthing-zalgoscript-with-visual-
fuzzing 視覺fuzz
http:
fuzz 編譯器
https:
fuzz D 編譯器
https:
fuzz go ~
https:
fuzz JAVA
https:
go-fuzz 自動化測試(視頻)
https:
fuzz capstone
https:
fuzz php
https:
fuzz 回歸測試,fuzz 語言解釋器
https:
plc 漏洞挖掘
https:
硬體 fuzz
https:
使用OpenBTS基站 fuzz 物聯網模塊
http:
IOTkit fuzz
http:
fuzz 工控實時作業系統
https:
fuzz UPnP
https://gamozolabs.github.io/fuzzing/2018/10/18/terrible_android_fuzzer.html
安卓 fuzzer
https://www.twistlock.com/2017/06/25/alpine-linux-pt-1-2/
fuzz apk
https://census-labs.com/news/2015/09/24/efficient-android-fuzzing/
高效 fuzz 安卓
https://insinuator.net/2018/11/h2hc2018/
http://www.alex-ionescu.com/?m=201901
hyper-V 中fuzz
http://blog.securelayer7.net/automating-web-apps-input-fuzzing-via-burp-macros/
burp 宏 自動化fuzz 測試webapp
https://www.kitploit.com/2017/06/xsstrike-fuzz-and-bruteforce-parameters.html
fuzz xss
https://www.kitploit.com/2016/12/filebuster-extremely-fast-and-flexible.html
filebuster web fuzzer
https://www.darknet.org.uk/2015/11/0d1n-web-http-fuzzing-tool/
web http fuzz
下面是2008年1月至2019年7月的4個主要安全會議和其他會議中包括關於模糊測試的paper。包括:網絡和分布式系統安全會議(NDSS), IEEE安全和隱私保護會議(S&P),USENIX安全會議(USEC),以及ACM計算機和通信安全會議(CCS)。
NDSS[CodeAlchemist:用於在JavaScript引擎中查找漏洞的語義感知代碼生成,2019]
(https:
[PeriScope:硬體作業系統邊界的有效探測和模糊測試框架,2019年]
(https:
[REDQUEEN:使用輸入到狀態通信進行模糊測試,2019年]
(https:
[以我的方式發送最難的問題:混合模糊測試的概率路徑優先級,2019年](https:
[語音識別後的生活:語音助理應用程式的模糊語義錯誤解釋,2019年]
(https:
[INSTRIM:用於覆蓋引導模糊的輕量級儀器,2018年]
(https:
[IoTFuzzer:通過基於應用程式的Fuzzing發現物聯網中的內存損壞,2018年](http:
[模糊嵌入式設備的挑戰,2018年]
(http:
[增強大規模應用程式和模糊測試的內存錯誤檢測,2018年]
(https:
[Vuzzer:應用程式感知的進化模糊測試,2017年]
(https:
[DELTA:2017年軟體定義網絡安全評估框架]
(http:
[Driller:2016年通過選擇性符號執行來增強模糊測試]
(https:
[自動化白盒模糊測試,2008年]
(http:
[模糊測試:通過覆蓋引導跟蹤減少模糊開銷,2019年]
(https:
[通過二維輸入空間探索的模糊文件系統,2019年]
(https:
[NEUZZ:使用神經程序平滑的高效模糊測試,2019]
(https:
[Razzer:通過Fuzzing尋找內核競爭錯誤,2019年]
(https:
[安哥拉:2018年原則搜索的高效模糊測試]
(http:
[CollAFL:Path Sensitive Fuzzing,2018]
(http:
[T-Fuzz:2018年的程序轉換模糊測試]
(https:
[Skyfire:2017年用於模糊測試的數據驅動種子生成]
(https:
[程序自適應突變模糊測驗,2015]
(https:
[TaintScope:2010年自動軟體漏洞檢測的校驗和感知定向模糊測試工具](https:
[模糊化:反模糊技術,2019年]
(https:
[AntiFuzz:阻止二進位可執行文件的模糊審計,2019年]
(https:
[魅力:促進移動系統設備驅動程序的動態分析,2018年]
(https:
[MoonShine:使用痕量蒸餾優化OS Fuzzer種子選擇,2018年]
(https:
[QSYM:為混合模糊測試量身定製的實用複雜執行引擎,2018年]
(https:
[OSS-Fuzz - Google為開源軟體提供的持續模糊測試服務,2017年]
(https:
[kAFL:針對OS內核的硬體輔助反饋模糊測試,2017年]
(https:
[2015年TLS實施的協議狀態模糊測試]
(https:
[優化Fuzzing的種子選擇,2014]
(https:
[尋找溢出:引導模糊器以查找緩衝區邊界違規,2013]
(http:
[使用Code Fragments進行模糊測試,2012]
(https:
[評估模糊測試,2018年]
(http:
[鷹眼:走向一個渴望的定向灰盒式模糊器,2018年]
(https:
[國際貨幣基金組織:推斷基於模型的Fuzzer,2017年]
(http:
[SemFuzz:基於語義的自動生成概念驗證漏洞,2017年]
(https:
[2017年基於AFL的Java與Fueling for Kelinci]
(https:
[2017年設計新的操作基元以提高模糊性能]
(http:
[Greybox Fuzzing,2017年]
(https:
[SlowFuzz:2017年算法複雜性漏洞的自動域獨立檢測]
(https:
[DIFUZE:2017年內核驅動程序的界面感知模糊測試]
(https:
[2016年TLS圖書館的系統模糊測試和測試]
(https:
[基於覆蓋的Greybox Fuzzing作為馬爾可夫鏈,2016年]
(https:
[eFuzz:2016年DLMS / COSEM電錶的模糊器]
(http:
[調度黑盒突變模糊測試,2013]
(https:
[馴服編譯器模糊器,2013年]
(https:
[SAGE:用於安全測試的白盒模糊測試,2012]
(https:
[基於語法的白盒模糊測試,2008]
(https:
[基於汙點的定向白盒模糊測試,2009年]
(https:
[2019年Fuzzing中機器學習應用綜述]
(https:
[Android作業系統供應商系統服務的進化模糊,2019年]
(https:
[MoonLight:2019年近期最佳語料庫蒸餾的有效模糊測試]
(https:
[2018年深度神經網絡的覆蓋引導模糊測試]
(https:
[DLFuzz:深度學習系統的差分模糊測試,2018年]
(https:
[TensorFuzz:使用Coverage-Guided Fuzzing調試神經網絡,2018年]
(https:
[NEUZZ:2018年神經網絡學習的高效模糊測試]
(https:
[EnFuzz:從Ensemble Learning到Ensemble Fuzzing,2018]
(https:
[REST-ler:自動智能REST API模糊測試,2018]
(https:
[深層加固模糊,2018年]
(https:
[並非所有字節都相同:用於模糊測試的神經字節篩,2017]
(https:
[更快的模糊測試:使用深度神經模型重新初始化,2017年]
(https:
[學習和模糊:2017年輸入模糊測試的機器學習]
(https:
[使用基於變異的模糊測試補充模型學習,2016]
(https:
### 其他
[Ifuzzer:使用遺傳編程的進化翻譯模糊器,2016]
(https:
[混合模糊測試:通過模糊測試和符號執行發現軟體錯誤,2012]
(https:
[針對Windows系統安全性的呼叫流感知API模糊測試,2008]
(https:
[反饋導向隨機測試生成,2007年]
(https:
《模糊測試-強制性安全漏洞發掘》作者:Michael Sutton, Adam Greene, Pedram Amini。
https:
《軟體安全測試Fuzzing和zhi』laing質量保證]》作者:Ari Takanen, Charles Miller, and Jared D Demott。
https:
《開源Fuzzing工具》作者:Gadi Evron and Noam Rathaus。
https:
《Shellcoder手冊:發現和利用安全漏洞》(第15章節)作者:Chris Anley, Dave Aitel, David Litchfield等。
https:
下面的文章解釋了fuzzing的方法,技術和最佳實踐。
[有效的文件格式Fuzzing](http://j00ru.vexillium.org/slides/2016/blackhat.pdf) – Mateusz「j00ru」Jurczyk @Black Hat 2016歐洲,倫敦
[過去一年的Windows內核字體fuzzing第一部分成果 ](https://googleprojectzero.blogspot.in/2016/06/a-year-of-windows-kernel-font-fuzzing-1_27.html)- 谷歌的Project Zero的一篇文章,描述了如何進行fuzzing和創建fuzzers。
[過去一年的Windows內核字體fuzzing第二部分技術 ](https://googleprojectzero.blogspot.in/2016/07/a-year-of-windows-kernel-font-fuzzing-2.html)- 谷歌的Project Zero的一篇文章,描述了fuzzing和創建fuzzers需要什麼。
[fuzzing項目中有趣的bug和資源](https://blog.fuzzing-project.org/) – 來自fuzzing-project.org。
[Fuzzing工作流程;fuzz工作從開始到結束](https://foxglovesecurity.com/2016/03/15/fuzzing-workflows-a-fuzz-job-from-start-to-finish/) – @BrandonPrry。
[用AFL和libFuzzer輕鬆介紹C++代碼fuzzing ](http://jefftrull.github.io/c++/clang/llvm/fuzzing/sanitizer/2015/11/27/fuzzing-with-sanitizers.html)- Jeff Trull。
[15分鐘fuzzing介紹 ](https://www.mwrinfosecurity.com/our-thinking/15-minute-guide-to-fuzzing/)- MWR安全。
[Fuzzing Blog](https://fuzzing.info/resources/) - fuzzing.info
[Fuzzing中出現崩潰的根本原因分析](https://www.corelan.be/index.php/2013/02/26/root-cause-analysis-memory-corruption-vulnerabilities/) - Corelan團隊。
[Root cause analysis of integer flow](https://www.corelan.be/index.php/2013/07/02/root-cause-analysis-integer-overflows/) -Corelan團隊。
[Creating custom peach fuzzer publishers](http://blog.opensecurityresearch.com/2014/01/creating-custom-peach-fuzzer-publishers.html) - Open Security Research。
[Fuzzing](https://www.linuxfoundation.org/blog/7-things-to-consider-before-fuzzing-a-large-open-source-project/)
從Fuzzing到漏洞利用
[從Fuzzing到0-day](https://blog.techorganic.com/2014/05/14/from-fuzzing-to-0-day/) - Harold Rodriguez(@superkojiman)。
[從崩潰到漏洞利用](https://www.corelan.be/index.php/2013/02/26/root-cause-analysis-memory-corruption-vulnerabilities/) - Corelan團隊。
Peach Fuzzer相關教程
[開始使用Peach](http://community.peachfuzzer.com/v2/PeachQuickstart.html)
[Peach Fuzzing第一部分](http://www.flinkd.org/fuzzing-with-peach-part-1/) – corelan團隊Jason Kratzer
[Peach Fuzzing第二部分 ](http://www.flinkd.org/fuzzing-with-peach-part-2-fixups-2/)- corelan團隊Jason Kratzer
[自動生成Peach pit文件/fuzzers ](http://doc.netzob.org/en/latest/tutorials/peach.html)- FrédéricGuihéry,Georges Bossert
AFL Fuzzer相關教程
[Fuzzing工作流程;fuzz工作從開始到結束](https://foxglovesecurity.com/2016/03/15/fuzzing-workflows-a-fuzz-job-from-start-to-finish/) – @BrandonPrry。
[使用afl的persistent模式給capstone做模糊測試](https://toastedcornflakes.github.io/articles/fuzzing_capstone_with_afl.html) – @toasted_flakes。
[RAM磁碟以及從AFL Fuzzing中保存你的SSD](http://cipherdyne.org/blog/2014/12/ram-disks-and-saving-your-ssd-from-afl-fuzzing.html)
[使用American Fuzzy Lop狩獵Bug](https://josephg.com/blog/bug-hunting-with-american-fuzzy-lop/)
[American Fuzzy Lop在真實案例中的高級使用](https://volatileminds.net/2015/07/01/advanced-afl-usage.html)
[使用afl-fuzz隔離Python](https://tomforb.es/segfaulting-python-with-afl-fuzz)
[Fuzzing Perl:American Fuzzy Lops的故事](http://www.geeknik.net/71nvhf1fp)
[使用AFL-Fuzz Fuzzing,一個練習示例(AFL vs Binutils)](https://www.evilsocket.net/2015/04/30/fuzzing-with-afl-fuzz-a-practical-example-afl-vs-binutils/)
[Fuzzing的重要性?](https://mgba.io/2016/09/13/fuzzing-emulators/)
[Heartbleed是如何被找到的](https://blog.hboeck.de/archives/868-How-Heartbleed-couldve-been-found.html)
[使用American Fuzzy lop Fuzzing文件系統](https://events.static.linuxfound.org/sites/events/files/slides/AFL%20filesystem%20fuzzing%2C%20Vault%202016_0.pdf)
[使用AFL Fuzzing Perl/XS模塊](https://medium.com/@dgryski/fuzzing-perl-xs-modules-with-afl-4bfc2335dd90)
[如何使用American Fuzzy Lop fuzz一個伺服器 ](https://www.fastly.com/blog/how-fuzz-server-american-fuzzy-lop)- Jonathan Foote
[AFL研討會Fuzzing – 真正的漏洞帶來的一系列挑戰](https://github.com/ThalesIgnite/afl-training)
[libFuzzer教程]
(https:
[libFuzzer研討會:「C/C++項目的現代fuzzing」]
(https:
[使用Spike Fuzzing查找溢出](https://null-byte.wonderhowto.com/how-to/hack-like-pro-build-your-own-exploits-part-3-fuzzing-with-spike-find-overflows-0162789/)
[使用Spike Fuzzing](https://samsclass.info/127/proj/p18-spike.htm) – samclass.info
https://github.com/secfigo/Awesome-Fuzzing
https://github.com/cpuu/awesome-fuzzing#books
https://mp.weixin.qq.com/s/oh8C9lfLeJ9cgAEzNVv3TA
https://bbs.pediy.com/thread-249986.htm
https://www.freebuf.com/news/169413.html
更多資料在github:
https://github.com/streetleague/0xbird.github.io/