WAF-A-MoLE:針對(duì)Web應(yīng)用防火墻的基于變異的模糊測(cè)試工具
關(guān)于WAF-A-MoLE
WAF-A-MoLE是一款功能強(qiáng)大的基于變異的模糊測(cè)試工具,該工具可以幫助廣大研究人員對(duì)基于ML的Web應(yīng)用防火墻進(jìn)行模糊測(cè)試。
只需提供一條SQL注入查詢語(yǔ)句,該工具便能夠嘗試生成一個(gè)可繞過(guò)目標(biāo)WAF的語(yǔ)義不變的變種查詢。我們可以使用WAF-A-MoLE來(lái)探索解決方案空間,找到目標(biāo)分類(lèi)器未發(fā)現(xiàn)的危險(xiǎn)“盲點(diǎn)”,并且可以使用此工具評(píng)估產(chǎn)品的穩(wěn)健性。
工具體系架構(gòu)

WAF-A-MoLE可以獲取初始Payload并將其插入Payload池中,Payload池將負(fù)責(zé)管理一個(gè)Payload優(yōu)先級(jí)隊(duì)列。
在每次迭代過(guò)程中,Payload池的頭部會(huì)被傳遞給模糊。在模糊器中,通過(guò)應(yīng)用一個(gè)可用的變異操作符,對(duì)Payload池進(jìn)行隨機(jī)變異。
變異操作
變異操作都是語(yǔ)義保留的,它們利用了SQL語(yǔ)言(在這個(gè)版本中是MySQL)的高表達(dá)能力。
以下是當(dāng)前版本W(wǎng)AF-A-MoLE中可用的變異操作:
工具要求
工具下載&安裝
廣大研究人員可以使用下列命令將該項(xiàng)目源碼克隆至本地:
- git clone https://github.com/AvalZ/WAF-A-MoLE.git
然后運(yùn)行下列命令完成依賴組件的安裝:
- pip install -r requirements.txt
工具使用
(1) wafamole --help
- Usage: wafamole [OPTIONS] COMMAND [ARGS]...
- Options:
- --help Show this message and exit.
- Commands:
- evade Launch WAF-A-MoLE against a target classifier.
(2) wafamole evade --help
- Usage: wafamole evade [OPTIONS] MODEL_PATH PAYLOAD
- Launch WAF-A-MoLE against a target classifier.
- Options:
- -T, --model-type TEXT Type of classifier to load
- -t, --timeout INTEGER Timeout when evading the model
- -r, --max-rounds INTEGER Maximum number of fuzzing rounds
- -s, --round-size INTEGER Fuzzing step size for each round (parallel fuzzing
- steps)
- --threshold FLOAT Classification threshold of the target WAF [0.5]
- --random-engine TEXT Use random transformations instead of evolution
- engine. Set the number of trials
- --output-path TEXT Location were to save the results of the random
- engine. NOT USED WITH REGULAR EVOLUTION ENGINE
- --help Show this message and exit.
性能評(píng)估

項(xiàng)目地址
WAF-A-MoLE:【GitHub傳送門(mén)】