天天看點

米斯特白帽教育訓練講義 工具篇 BruteXSS米斯特白帽教育訓練講義 工具篇 BruteXSS

米斯特白帽教育訓練講義 工具篇 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 不便于自動化掃描,這個工具的作用仍然很有限,遇到掃不出來的漏洞很正常。