編寫自己的Acunetix WVS漏洞指令碼

wyzsk發表於2020-08-19
作者: 烏帽子 · 2014/07/04 14:44

0x00 背景


AWVS提供了自定義的指令碼程式設計介面,可是網上的資料很少,只有官方的幾篇介紹和參考手冊,最近研究了一下怎麼編寫AWVS的漏洞指令碼來寫一篇簡單性的文章,大家有興趣的可以交流。

本文以8.0為例,首先呢安裝好Acunetix Web Vulnerability Scanner 8(該破解的破解,該付費的付費),然後我們需要WVS公開的小小的SDK,下載地址:http://www.acunetix.com/download/tools/WVSSDK.zip,下載好了後解壓bin目錄下的WVSS.exe到WVS安裝目錄下面,此即為WVS指令碼編寫工具。另外sdk裡還有3個簡單的指令碼小例子和WVS_SDK_Quick_Introduction.pdf,耐心的可以看看。

0x01 細節


下面的截圖就是WVS碼指令碼工具了

2014070400041767163.jpg

開啟WVS資料目錄,通常是在C:\Documents and Settings\All Users\Application Data\Acunetix WVS 8\Data\Scripts下,可以看到有10個資料夾,Network、PerFile、PerScheme、PostScan、PerFolder、PerServer、PostCrawl、WebApps、XML。我們先來認識一下:

2014070400050052332.jpg

Network:此目錄下的指令碼檔案是當掃描器完成了埠掃描模組後執行,這些指令碼可以檢測TCP埠的開放情況,比如檢測FTP的21埠是否開放、是否允許匿名登入; 
PerFile:此目錄下的指令碼是當掃描器爬蟲爬到檔案後執行,比如你可以檢查當前測試檔案是否存在備份檔案,當前測試檔案的內容等; 
PerFolder:此目錄下的指令碼是當掃描器爬蟲爬行到目錄後執行,比如你可以檢測當前測試目錄是否存在列目錄漏洞等; 
PerScheme:此目錄下的指令碼會對每個URL的 GET、POST結構的引數進行檢測,AWVS定義了的引數包括HTTP頭、Cookies、GET/POST引數、檔案上傳(multipart/form-data)……比如你可以檢測XSS、SQL隱碼攻擊和其他的應用程式測試; 
PerServer:此目錄下的指令碼只在掃描開始是執行一次,比如你可以檢測Web伺服器中介軟體型別; 
PostScan:此目錄下的指令碼只在掃描結束後執行一次,比如你可以檢測儲存型XSS、儲存型SQL隱碼攻擊、儲存型檔案包含、儲存型目錄遍歷、儲存型程式碼執行、儲存型檔案篡改、儲存型php程式碼執行等; 
XML:漏洞的詳細描述文件都在這裡。 

今天演示的漏洞是Discuz 7.2的faq.php SQL隱碼攻擊,關於漏洞:http://ha.cker.in/1087.seo

我們就用POC來寫漏洞的指令碼吧!

檢測原理:

根據公開的POC構造出特殊請求,若存在SQL隱碼攻擊則構造的SQL語句將會執行成功並在返回到響應內容,構造POC如下:

/faq.php?action=grouppermission&gids[99]='&gids[100][0]=) and (select 1 from (select count(*),concat((select 0x4861636B656442795365636572),floor(rand(0)*2))x from information_schema.tables group by x)a)%23

URLEncode編碼一下:

faq.php?action=grouppermission&gids[99]='&gids[100][0]=)%20and%20(select%201%20from%20(select%20count(),concat((select%200x4861636B656442795365636572),floor(rand(0)2))x%20from%20information_schema%20.tables%20group%20by%20x)a)%23

2014070400052637340.jpg

我們需要用WVS的指令碼請求此URL並處理返回的內容,以此判斷是否存在漏洞。

開啟AWVS,Tools -> Vulnerability Editor,右鍵VulnXMLs節點,選擇‘Add Vulnerability’

2014070400061580159.jpg

新建一個漏洞,VulnXML FILENAME為Discuz7.2FaqSqlinjection,點Add按鈕(新建的VulnXML會被儲存到XML資料夾下哦)

2014070400063761671.jpg

接下來登記下該漏洞的相關資訊

2014070400072634459.jpg

2014070400073990780.jpg

然後進入wvss寫指令碼,儲存為Discuz7.2FaqSqlinjection.script放入PerServer資料夾吧。

測試指令碼:

使用AWVS的網站爬蟲爬行網站並儲存結果,

2014070400081569530.jpg

這裡選擇根目錄

2014070400083732484.jpg

點選小三角按鈕測試

2014070400091625586.jpg

2014070400092981770.jpg

完整的程式碼如下

2014070400095916620.jpg

測試成功了,我到WVS裡掃描去測試掃描看看~

我們新建的漏洞指令碼在這裡,Scanning Profiles –》 PerFolder目錄下,新建一個掃描模板勾選要測試的指令碼並儲存,這裡儲存為“test_HA.CKER.IN”,然後用這個模板掃描目標站測試吧

2014070400102959221.jpg

選擇模板並開始掃描

2014070400105090725.jpg

掃描完成後,結果如圖

2014070400112465943.jpg

漏洞指令碼重複檢測了很多次,下次更新修復下這個問題。

0x02 總結


本人不才,這次對AWVS自定義指令碼編寫簡單的介紹就到這了,只是做個示例展示給大家,這些API不是很詳細我也不是很會寫,更多的API等你去挖掘吧!

參考:

http://www.acunetix.com/vulnerability-scanner/scriptingreference/index.html

http://www.acunetix.com/blog/docs/creating-custom-checks-acunetix-web-vulnerability-scanner/

本文章來源於烏雲知識庫,此映象為了方便大家學習研究,文章版權歸烏雲知識庫!

相關文章