DOM Invader
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
DOM Invaderは、Burpの内蔵ブラウザにインストールされたブラウザツールです。これは、ウェブメッセージやプロトタイプ汚染を含むさまざまなソースとシンクを使用して、DOM XSS脆弱性を検出するのを支援します。このツールは拡張機能として事前にインストールされています。
DOM Invaderは、ブラウザのDevToolsパネル内にタブを統合し、以下を可能にします:
DOM XSSテストのためのウェブページ上の制御可能なシンクの特定、コンテキストとサニタイズの詳細を提供します。
postMessage()
メソッドを介して送信されたウェブメッセージのログ、編集、および再送信。DOM Invaderは、特別に作成されたウェブメッセージを使用して脆弱性を自動検出することもできます。
クライアントサイドのプロトタイプ汚染ソースの検出と、リスクのあるシンクに送信される制御可能なガジェットのスキャン。
DOMクラッバーリング脆弱性の特定。
Burpの内蔵ブラウザでBurp拡張機能に移動し、有効にします:
ページを更新すると、Dev ToolsにDOM Invaderタブが表示されます:
前の画像にはランダムな文字のグループ、つまりカナリアが表示されています。これをウェブのさまざまな部分(パラメータ、フォーム、URLなど)に注入し、毎回検索をクリックしてください。DOM Invaderは、カナリアが興味深いシンクに到達したかどうかを確認します。
さらに、URLパラメータを注入するオプションとフォームを注入するオプションは、自動的に新しいタブを開き、見つけたすべてのURLパラメータとフォームにカナリアを注入します。
ページが持つ可能性のあるシンクを見つけたいだけの場合、たとえそれが悪用できなくても、空のカナリアを検索できます。
DOM Invaderは、以下の機能を持つウェブメッセージを使用してDOM XSSをテストすることを可能にします:
postMessage()
を介して送信されたウェブメッセージのログ、Burp ProxyのHTTPリクエスト/レスポンス履歴ログに似ています。
ウェブメッセージの 変更と再発行、手動でDOM XSSをテストするため、Burp Repeaterの機能に似ています。
自動的な変更とウェブメッセージの送信によるDOM XSSの調査。
各メッセージをクリックすると、メッセージの詳細情報が表示され、クライアントサイドのJavaScriptがメッセージのorigin
、data
、またはsource
プロパティにアクセスするかどうかが含まれます。
origin
: メッセージのオリジン情報がチェックされていない場合、任意の外部ドメインからイベントハンドラーにクロスオリジンメッセージを送信できる可能性があります。しかし、チェックされている場合でも、安全でない可能性があります。
data
: ここにペイロードが送信されます。このデータが使用されない場合、シンクは無意味です。
source
: 通常はiframeを参照するソースプロパティがオリジンの代わりに検証されているかどうかを評価します。これがチェックされていても、検証がバイパスされないことは保証されません。
メッセージビューから、任意のメッセージをクリックしてメッセージ詳細ダイアログを開きます。
必要に応じてデータフィールドを編集します。
送信をクリックします。
DOM Invaderは、プロトタイプ汚染脆弱性を検索することもできます。まず、有効にする必要があります:
次に、Object.prototype
に任意のプロパティを追加できるソースを検索します。
何かが見つかると、テストボタンが表示され、見つかったソースをテストします。クリックすると、新しいタブが表示され、コンソールでオブジェクトを作成し、testproperty
が存在するかどうかを確認します:
一度ソースを見つけると、ガジェットをスキャンできます:
DOMビューの任意の特定されたプロトタイプ汚染ソースの隣にあるガジェットをスキャンボタンをクリックすると、DOM Invaderによって新しいタブが開かれます。適切なガジェットのスキャンが始まります。
同時に、同じタブでDevToolsパネルにDOM Invaderタブが開かれている必要があります。スキャンが完了すると、特定されたガジェットを介してアクセス可能なシンクがDOMビューに表示されます。例えば、innerHTML
シンクに渡されるhtml
という名前のガジェットプロパティが以下の例に示されています。
前の画像では、DOMクラッバーリングスキャンをオンにできることがわかります。完了すると、DOM InvaderはDOMクラッバーリングの脆弱性を探し始めます。
AWSハッキングを学び、練習する:HackTricks Training AWS Red Team Expert (ARTE) GCPハッキングを学び、練習する:HackTricks Training GCP Red Team Expert (GRTE)