米斯特白帽教育訓練講義 工具篇 BruteXSS
講師: gh0stkey 整理: 飛龍 協定: CC BY-NC-SA 4.0
介紹
BruteXSS 是一個非常強大和快速的跨站點腳本檢測工具,可用于暴力注入參數。BruteXSS 從指定的詞庫加載多種有效載荷進行注入,并且使用指定的載荷和掃描檢查這些存在 XSS 漏洞的參數。得益于非常強大的掃描功能,在執行任務時,BruteXSS 非常準确而且極少誤報。 BruteXSS 支援 POST 和 GET 請求,并适應現代 Web 應用程式。
特性:
- XSS 爆破
- XSS 掃描
- GET/POST 請求
- 可包含自定義單詞
- 人性化的 UI
安裝
首先安裝 Python 2.7。
依賴是
Colorama
和
Mechanize
兩個庫。但我看到源碼中包含了這兩個庫,是以一般不用自己安裝。如果運作失敗,那麼執行這兩條指令手動安裝一下。
pip install colorama
pip install Mechanize
之後從
https://github.com/shawarkhanethicalhacker/BruteXSS/zipball/master
下載下傳所有檔案,解壓。
還需要單詞清單,原版的
wordlist.txt
有 20 條語句,隻能執行基本的 XSS 檢查。
https://github.com/ym2011/penetration/blob/master/BruteXSS/wordlist-small.txt
這個檔案有 100 條語句,可以執行相對全面的 XSS 檢查。
https://github.com/ym2011/penetration/blob/master/BruteXSS/wordlist-medium.txt
這個檔案有 200 條語句,可以執行繞過 WAF 的 XSS 檢查。
https://github.com/ym2011/penetration/blob/master/BruteXSS/wordlist-huge.txt
這個檔案有 5000 條語句,可以非常全面并且執行繞過 WAF 的 XSS 檢查。
然後為了模拟被測頁面,我們還要部署一個頁面:
\\XSS反射示範
<form action="" method="get">
<input type="text" name="xss"/>
<input type="submit" value="test"/>
</form>
<?php
$xss = @$_GET['xss'];
if($xss!==null){
echo $xss;
}
假設我們能夠通過
localhost/xss.php
來通路它。
使用
首先在解壓處執行:
python brutexss.py
于是就進入指令行界面了
____ _ __ ______ ____
| __ ) _ __ _ _| |_ ___ \ \/ / ___/ ___|
| _ \| '__| | | | __/ _ \ \ /\___ \___ \
| |_) | | | |_| | || __/ / \ ___) |__) |
|____/|_| \__,_|\__\___| /_/\_\____/____/
User:Gh0stkey
注意:使用錯誤的有效載荷的定義
字典可能給你積極性質
更好地使用字典
提供積極的結果。
[?] 選擇方法: [G]GET 或者 [P]Post (G/P):
下面它會詢問我們一些配置。我們在選擇方法時輸入
G
,指定 URL 時輸入
http://localhost/xss.php?xss
,這裡一定要把參數暴露出來給它。然後字典位置輸入
wordlist.txt
,大家也可以嘗試其他字典。
[?] 選擇方法: [G]GET 或者 [P]Post (G/P): G
[?] 輸入 URL:
[?] > http://localhost/xss.php?xss=
[+] 檢測 localhost 是可用的...
[+] localhost is available! Good!
[?] 輸入字典的位置 (按Enter鍵使用預設 wordlist.txt)
[?] > wordlist.txt
之後程式會顯示結果,告知我們該頁面存在 XSS 漏洞。
[+] 從指定字典加載載荷.....
[+] 25 攻擊載荷加載...
[+] Bruteforce開始:
[+] 測試 'xss' 參數...
[+] 0 / 25 攻擊載荷注入...
[!] Xss漏洞發現
[!] 參數: xss
[!] Payload: </script>"><script>prompt(1)</script>
[+] Bruteforce完成。
[+] 1 參數是 容墜セ鞯? xss.
[+] 掃描結果 localhost:
+----+------------+----------------+
| Id | Parameters | Status |
+----+------------+----------------+
| 0 | xss | Vulnerable |
+----+------------+----------------+
[?] [E]結束程序\[A]程式初始化
之後它會讓我們選擇,結束程序的意思就是退出,初始化的意思就是重新開始。如果不需要掃描其他東西,我們輸入
E
。
如果是 POST 掃描,我們為 URL 輸入
http://localhost/xss.php
,為資料輸入
xss=
就可以了。
由于一些 XSS 比如儲存型 XSS 不便于自動化掃描,這個工具的作用仍然很有限,遇到掃不出來的漏洞很正常。