Wapiti - 小巧的網站漏洞檢測工具

由 blue 於 週四, 04/26/2007 - 00:37 發表

Wapiti 是一套 OpenSource 的網站漏洞檢測工具,比較特殊的是,它並不依賴特徵資料庫,也因此掃描的速度相當快,而探測的則是一些共通性問題,或是作者所宣稱的未知漏洞。Wapiti 其實是一隻 Python Script,可在多數平台運作,在網頁開發過程中,用這套工具反覆進行測試,以便初步修飾一些問題,算是相當快速而方便,它提供偵測:

‧檔案處理瑕疵
‧能執行的系統命令
‧Database Injection
‧XSS Injection
‧LDAP Injection
‧CRLF (換行字元) Injection

建議採用 Python 2.5 來執行,已內含所需之 ctypes,我用一個正在開發中的網站測試,很快就找出了兩個當初偷懶而衍生的問提,測試畫面 :

/tmp/wapiti-1.1.6# python2.5 wapiti.py <a href="http://www.xxx.tw" title="http://www.xxx.tw">http://www.xxx.tw</a>
lswww will be far less effective without tidy
please install libtidy ( <a href="http://tidy.sourceforge.net/" title="http://tidy.sourceforge.net/">http://tidy.sourceforge.net/</a> ),
ctypes ( <a href="http://starship.python.net/crew/theller/ctypes/" title="http://starship.python.net/crew/theller/ctypes/">http://starship.python.net/crew/theller/ctypes/</a> )
and uTidylib ( <a href="http://utidylib.berlios.de/" title="http://utidylib.berlios.de/">http://utidylib.berlios.de/</a> )
Wapiti-1.1.6 (wapiti.sourceforge.net)
........................................................................
Attacking urls (GET)...
-----------------------

Attacking forms (POST)...
-------------------------
Found XSS in <a href="http://www.xxx.tw/service/service_new.php" title="http://www.xxx.tw/service/service_new.php">http://www.xxx.tw/service/service_new.php</a>
with params = btnSave=%B0e%A5X%B1z%AA%BA%B0%DD%C3D&question=%3Cscript%3Evar+wapiti_687474703a2f2f7777772e6d797374796c652e74772f736572766963652f736572766963655f6e65772e706870_7175657374696f6e%3Dnew+Boolean%28%29%3B%3C%2Fscript%3E&email=on
coming from <a href="http://www.xxx.tw/service/service_new.php" title="http://www.xxx.tw/service/service_new.php">http://www.xxx.tw/service/service_new.php</a>
Found XSS in <a href="http://www.xxx.tw/service/guest_login.php" title="http://www.xxx.tw/service/guest_login.php">http://www.xxx.tw/service/guest_login.php</a>
with params = password=on&email=%3Cscript%3Evar+wapiti_687474703a2f2f7777772e6d797374796c652e74772f736572766963652f67756573745f6c6f67696e2e706870_656d61696c%3Dnew+Boolean%28%29%3B%3C%2Fscript%3E&submit=%ACd%B8%DF&mode=on
coming from <a href="http://www.xxx.tw/service/guest_login.php?list=atm" title="http://www.xxx.tw/service/guest_login.php?list=atm">http://www.xxx.tw/service/guest_login.php?list=atm</a>

Looking for permanent XSS
-------------------------

根據網站中的表單紀錄,它測試的字串像是:

/e\0
璞'\"(
a;env
a);env
../../../../../../../../../../boot.ini
../../../../../../../../../../boot.ini\0
c:\\\\boot.ini
c:\\\\boot.ini\0
../../../../../../../../../../etc/passwd
<a href="http://www.google.fr/" title="http://www.google.fr/">http://www.google.fr/</a>
/etc/passwd
/etc/passwd\0

Wapiti 自然無法與商業級的工具相比,但輕便而免安裝,此外,無論多強大的工具,其自動發掘的漏洞仍十分有限,最好的方法還是開發過程中不厭其煩的反覆檢查、過濾及測試。