如何使用RESTler對(duì)云服務(wù)中的REST API進(jìn)行模糊測(cè)試,針對(duì)這個(gè)問題,這篇文章詳細(xì)介紹了相對(duì)應(yīng)的分析和解答,希望可以幫助更多想解決這個(gè)問題的小伙伴找到更簡(jiǎn)單易行的方法。
成都創(chuàng)新互聯(lián)公司從2013年開始,先為南陵等服務(wù)建站,南陵等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為南陵企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。
RESTler是目前第一款有狀態(tài)的針對(duì)REST API的模糊測(cè)試工具,該工具可以通過云服務(wù)的REST API來對(duì)目標(biāo)云服務(wù)進(jìn)行自動(dòng)化模糊測(cè)試,并查找目標(biāo)服務(wù)中可能存在的安全漏洞以及其他威脅攻擊面。如果目標(biāo)云服務(wù)帶有OpenAPI/Swagger規(guī)范,那么RESTler則會(huì)分析整個(gè)服務(wù)規(guī)范,然后通過其REST API來生成并執(zhí)行完整的服務(wù)測(cè)試。
RESTler從Swagger規(guī)范智能地推斷請(qǐng)求類型之間的生產(chǎn)者-消費(fèi)者依賴關(guān)系。在測(cè)試期間,它會(huì)檢查特定類型的漏洞,并從先前的服務(wù)響應(yīng)中動(dòng)態(tài)地解析服務(wù)的行為。這種智能化的方式使RESTler能夠探索只有通過特定的請(qǐng)求序列才能達(dá)到的更深層次的服務(wù)狀態(tài),并找到更多的安全漏洞。
RESTler由微軟研究團(tuán)隊(duì)負(fù)責(zé)研發(fā),當(dāng)前該項(xiàng)目仍處于活躍開發(fā)狀態(tài)。
RESTler目前僅支持在64位的Windows和Linux操作系統(tǒng)上運(yùn)行。
工具要求:安裝Python 3.8.2和.NET Core SDK 3.1。
接下來,創(chuàng)建一個(gè)用于存放RESTler源代碼的目錄:
mkdir restler_bin
切換到項(xiàng)目根目錄下,然后運(yùn)行下列Python腳本:
python ./build-restler.py --dest_dir
注意:如果你在源碼構(gòu)建過程中收到了Nuget 錯(cuò)誤 NU1403的話,請(qǐng)嘗試使用下列命令清理緩存:
dotnet nuget locals all --clear
Compile:從一個(gè)Swagger JSON或YAML規(guī)范生成一個(gè)RESTler語法。
C:\RESTler\restler\Restler.exe compile --api_spec C:\restler-test\swagger.json
Test:在已編譯的RESTler語法中快速執(zhí)行所有的endpoints+methods以調(diào)試測(cè)試設(shè)置,并計(jì)算Swagger規(guī)范的哪些部分被涵蓋。這種模式也稱為smoketest。
C:\RESTler\restler\restler.exe test --grammar_file C:\restler-test\Compile\grammar.py --dictionary_file C:\restler-test\Compile\dict.json --settings C:\restler-test\Compile\engine_settings.json --no_ssl
Fuzz-lean:在編譯的RESTler語法中,每個(gè)endpoints+methods都執(zhí)行一次,并使用一組默認(rèn)的checker來查看是否可以快速找到安全漏洞。
C:\RESTler\restler\restler.exe fuzz-lean --grammar_file C:\restler-test\Compile\grammar.py --dictionary_file C:\restler-test\Compile\dict.json --settings C:\restler-test\Compile\engine_settings.json --no_ssl
Fuzz:查找漏洞,利用智能廣度優(yōu)先搜索模式(更深入的搜索模式)的RESTler模糊語法查找更多的安全漏洞。
C:\RESTler\restler\restler.exe fuzz --grammar_file C:\restler-test\Compile\grammar.py --dictionary_file C:\restler-test\Compile\dict.json --settings C:\restler-test\Compile\engine_settings.json --no_ssl --time_budget 1
關(guān)于如何使用RESTler對(duì)云服務(wù)中的REST API進(jìn)行模糊測(cè)試問題的解答就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道了解更多相關(guān)知識(shí)。