
残念ながら、ffuf は「-ac」フラグにもかかわらず、無関係なエントリを大量に生成する傾向があります。そのため、これらのエントリをフィルタリングするための後処理ツールを作成しました。 さらに、「-ac」を使用すると、関連するエントリが多く削除されるのを確認しました。特に ffuf が json や xml ファイルに遭遇した場合、「-ac」はそれらを完全に削除する可能性があります。 このツールは ffuf が完了した後に実行する必要があります。また、最初の ffuf コマンドは以下のフラグを指定して実行する必要があります:
-o /folder/to/results.json
-od /folder/to/bodies
-of json (default)
これにより、ffuf は json 形式のサマリーファイルとレスポンスのボディをディスクに書き込みます。 「-od」の追加は必須ではありませんが推奨されます。
特に、かっこいいものを見逃したくない場合や、この後処理ツールを使いたい場合は、「-ac」フラグを 使用しない ことを強くお勧めします。
Usage of ./ffufPostprocessing:
-result-file string
Path to the original ffuf result file (in json format)
-bodies-folder string
Path to the ffuf bodies folder (optional, if set results will be better)
-new-result-file string
Path to the new ffuf result file (optional)
-delete-bodies
Delete unnecessary body files after filtering (optional)
-overwrite-result-file
Overwrite original result file (optional)
-verbose
Verbose mode (Shows currently filtered results) (optional)
まず、いつものように ffuf を実行します。ここでは非常にシンプルなコマンドを使用しました:
./ffuf -u yourtarget.com/FUZZ -w /path/to/wordlist -o /tmp/ffuf/results.json -od /tmp/ffuf/bodies/ -of json
実行後、指定したフォルダに結果ファイルとすべてのボディが保存されているはずです。次に、データを解析して無関係なエントリをフィルタリングします:
./ffufPostprocessing -result-file /tmp/ffuf/results.json -bodies-folder /tmp/ffuf/bodies/ -delete-bodies -overwrite-result-file
特に「-od」が設定されている場合、リクエストした各 URL のすべての HTTP ヘッダーとボディが存在することになります。このツールは最初にすべてのボディを解析し、初期の結果 json ファイルに以下のデータポイントを追加します:
その後、新しい結果ファイル全体をスキャンし、既知のメタデータタイプに基づいて一意なエントリのみを保持します。 それらの値のいずれかが常に異なる場合(例: ページのタイトルが大きく変動する場合)、そのメタデータタイプは一意性チェックの対象から除外されます。
一般に、このツールは 一意ではない エントリを少量保持します。例えば、結果 json ファイルに 300 件の HTTP ステータス 403(words、length などが同一)と 2 件の一意な HTTP ステータス 200 レスポンスが含まれている場合、300 件すべての HTTP ステータス 403 エントリを削除するわけではありません。 そのうちの X 件はデータセットに保持します。
ffufPostprocessing には golang 1.19 が必要です。
cd ffufPostprocessing
go build -o dist/ffufPostprocessing main.go
気にしません。このツールで好きなことをしてください。