ハッシュタグファズは、 WAFとCDNをテストおよびバイパスするために設計されたファジングツールです。ランダムユーザーエージェントとヘッダー値、ランダム遅延、マルチスレッドのハンドル、ワードリストの選択的チャンキング、および各チャンクのラウンドロビンプロキシローテーションなどの高度な機能を活用することにより、Webアプリケーションの脆弱性を特定することを目的としたセキュリティ専門家に堅牢なソリューションを提供します。このツールは、レートと制限に関するWAFテストのために、そのクラスでほぼ最初で最高のものとして際立っています。
このスクリプトと同じフォルダーをグローバルに入れたくない場合は、OSでのグローバルアクセスにアプリを許可します。
git clone https://github.com/Hashtag-AMIN/hashtag-fuzz.git
cd ./hashtag-fuzz
chmod +x ./hashtag-fuzz
./hashtag-fuzz使用されるすべてのライブラリは、Pythonライブラリが組み込まれており、PIPは必要ありません;)
cp ./hashtag-fuzz /usr/local/sbin/このツールは、特定の構成を備えた4つのWAFモードをサポートしています。
| WAFモード | 説明 |
|---|---|
| エントリ | 保護メカニズムを最小限に抑えた基本的なWAFプロファイル。初期テストに適しています。 |
| 一般 | 共通の保護メカニズムを備えた標準WAFプロファイル。汎用テストに適しています。 |
| プロ | より洗練された保護メカニズムを備えた高度なWAFプロファイル。プロのグレードのWAFに対するテストに適しています。 |
| プライム | 最高レベルの保護を備えたプレミアムWAFプロファイル。エンタープライズグレードのWAFに対するテストに適しています。 |
Hashtag-Fuzzは4つのWAFモードをサポートし、それぞれがユニークな機能と構成を提供します。
| モード | ファジング用の制御スレッド | ランダム遅延を制御します | ランダムユーザーエージェントとヘッダー | 分割されたwordliostのcunckサイズ |
|---|---|---|---|---|
| エントリ | 基本的なスレッドコントロール、限られた20スレッド | 最小限の遅延、0.1〜0.2秒のランダム遅延 | ランダムユーザーエージェントとランダム化3内部ネットワークをシミュレートするためのトップヘッダー | 250のチャンクに分割されたワーリスト |
| 一般 | 改善されたスレッド管理、限られた10個のスレッド | 0.2〜0.5秒のランダム遅延を導入します | ランダムなユーザーエージェント、ランダム6トップヘッダーランダムローカル/プライベートIPを備えたトップヘッダー | 200のチャンクに分割されたワーリスト |
| プロ | 高度なスレッドコントロール、限られた5つのスレッド | リクエスト間のランダム遅延0.5-1秒 | ローカル/プライベートの範囲を備えたランダムユーザーエージェントおよびランダム化効率的なヘッダー | 100のチャンクに分割されたワーリスト |
| プライム | 最大スレッドコントロール、制限された1つのスレッド | 最大遅延、1〜2秒のランダム遅延 | 最も有用なヘッダーランダム化とランダムユーザーエージェント | 50チャンクに分割されたワーリスト |
└─# ./hashtag-fuzz -h
__ __ __ ___
/ / / __ /'___
___ __ ___ ___ ,_ __ __ / __/ __ __ ____ ____
_ ` /'__` /',__ _ ` / /'__` /'_ `_____ ,__/ / /_ ,`/_ ,`
/ L._/__,/` _/ L._/ L _____ _ _ /_/ //_/ /_
_ _ __/._/____/ _ _ __ __/._ ____ ____/ _ ____/ /_/__/_/___
/_//_//__//_//___/ /_//_//__//__//_//___L /_/ /___/ /____//____/
/____/
_/__/
The wrapper of ffuf
The nightmare of WAFs & CDNs
https://github.com/Hashtag-AMIN/hashtag-fuzz
usage: hashtag-fuzz [-h] [-u URL] [-U URLS] [-request REQUEST_RAW]
[-H HEADER] [-b COOKIE] [-d DATA] [-X METHOD] -w WORDLIST
[-waf {entry,common,pro,prime}]
[-cs chunk_SIZE] [-t THREAD] [-p RANDOM_DELAY]
[-x [PROXY]] [-xf PROXY_FILE] [-tor [TOR]]
[-o OUTPUT] [-of {txt,csv}]
[-a ADDITIONAL_CMD] [-v]
hashtag-fuzz wrapper for FFUF.
options:
-h --help show this help message and exit
-u --url URL Target URL
-U --urls URLS File include List of Target URLs
-request --request-raw REQUEST_RAW
File Path to raw request [-request-proto is default: https,
if need to change with -a command: -a="-request-proto http"]
-H --header HEADER Custom headers to add to requests
-b --cookie COOKIE Cookies to add to requests
-d --data DATA Data to send with the request for POST/PUT/PATCH methods
-X --method METHOD HTTP method to use (e.g., GET, POST, PUT)
-w --wordlist WORDLIST
Path to wordlist
-waf --waf-mode {ENTRY,COMMON,PRO,PRIME}
WAF or CDN behavior mode: entry, common, pro, or prime
-cs --chunk-size chunk_SIZE
Split each wordlist with Chunk size, (default=300)
-t --thread THREAD threads use in ffuf (default=[select in waf mode])
-p --random-delay RANDOM_DELAY
random delay range use in ffuf (default=[select in waf mode])
-x --proxy PROXY Proxy server|servers to use (c)
-xf --proxy-file PROXY_FILE
Proxy servers file to use
-tor --tor TOR use Tor proxy with unique(dynamic) IP address for each chunk of wordlist
(default=socks5://127.0.0.1:9050)
-o --output OUTPUT Output file name of FFUF result
-of --output-format {TXT,CSV}
Output of FFUF brief and useful mode: txt, csv
-a --additional-cmd ADDITIONAL_CMD
Additional FFUF commands
-v --verbose verbose mode default: False
./hashtag-fuzz -u http://site.tld/FUZZ -w ./wordlist.txt -waf entry
./hashtag-fuzz -u http://site.tld/FUZZ -w ./wordlist.txt -waf pro -cs 10./hashtag-fuzz -request ./raw-req.txt -w ./wordlist.txt -waf common./hashtag-fuzz -U ./urls.txt -w ./wordlist.txt -waf entry -cs 50 -H " X-header: header-val "
./hashtag-fuzz -U ./urls.txt -w ./wordlist.txt -waf pro -H ' Authorization: value_token ' echo ' http://site.tld ' | ./hashtag-fuzz -w ./wordlist.txt -waf common -cs 15 -d " var1=FUZZ&var2=val2 " -X " PUT "
cat ./urls.txt | ./hashtag-fuzz -w ./wordlist.txt -waf prime -cs 60 " X-header: FUZZ " -p ' 2-2.5 '
cat ./urls.txt | ./hashtag-fuzz -w ./wordlist.txt -waf pro -b ' cookie=value_session ' デフォルト= http://127.0.0.1:8080使用-x(burpの場合)、有効なURLを使用したマルチ値とプロキシファイルも使用します。
echo ' http://site.tld/FUZZ ' | ./hashtag-fuzz -w ./wordlist.txt -waf prime -cs 15 -t 50 -x
echo ' http://site.tld/FUZZ ' | ./hashtag-fuzz -w ./wordlist.txt -waf entry -x ' http://proxy1.com '
cat ./urls.txt | ./hashtag-fuzz -w ./wordlist.txt -waf common -cs 15 " header: header-val " -x ' http://proxy1.com ' -x ' http://proxy2.com '
echo ' http://site.tld/FUZZ ' | ./hashtag-fuzz -w ./wordlist.txt -waf pro -cs 100 -xf ./proxy.txt各チャンクがターゲットに送信されるたびに、TORサービスが再起動され、新しいIPが撮影されるため、OSのサービスとしてTORを追加する必要があります
デフォルト= socks5://127.0.0.1:9050 with -tor(デフォルトのローカルアドレスTOR)
cat ./urls.txt | ./hashtag-fuzz -w ./wordlist.txt -waf prime -cs 15 " header: header-val " -tor
echo ' http://test.it/FUZZ ' | ./hashtag-fuzz -w ./wordlist.txt -waf common -cs 80 -tor socks5://proxy1.tor:8000任意のOSでサービスとしてTORを追加するヘルプとドキュメント
ffufにコマンドを追加する必要がある場合は、-a/ - 追加のCMD引数で文字列として書くことができます
cat ./urls.txt | ./hashtag-fuzz -w ./wordlist.txt -waf common -d " data-var=FUZZ " -X " PUT " -a= " -mr '.*test' "
cat ./urls.txt | ./hashtag-fuzz -w ./wordlist.txt -waf prime -cs 15 -tor -a= ' -ac ' ファズがリクエストで高いレートでWAFまたはCDNブロックが必要な場合は、これらの手法を一緒に使用します
cat ./urls.txt | ./hashtag-fuzz -w ./wordlist.txt -waf prime -cs 20 -tor
cat ./urls.txt | ./hashtag-fuzz -w ./wordlist.txt -waf prime -cs 30 -xf ./proxy.txtプライムモードのデフォルトのランダム遅延1-2ですが、時にはカスタマイズする必要があります。
cat ./urls.txt | ./hashtag-fuzz -w ./wordlist.txt -waf prime -cs 10 -tor -p ' 2-2.5 'デフォルトではスレッドを処理するだけでなく、それを含めることもできます:
cat ./urls.txt | ./hashtag-fuzz -w ./wordlist.txt -waf pro -cs 5 -tor -p ' 2.5-3 ' -t 1この機能を使用するのに便利なフォローの1つは、wirh paramspiderまたはparamspiderを使用してください
" urls_come_form_ParamSpider_with_FUZZ_keyword " | ./hashtag-fuzz -w ./wordlist.txt -waf pro -cs 50 -tor