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を参照するソースプロパティがオリジンの代わりに検証されているかどうかを評価します。これがチェックされていても、検証がバイパスされないことは保証されません。
Messagesビューから、任意のメッセージをクリックしてメッセージ詳細ダイアログを開きます。
必要に応じてDataフィールドを編集します。
Sendをクリックします。
DOM Invaderは、プロトタイプ汚染脆弱性を検索することもできます。まず、有効にする必要があります:
次に、Object.prototype
に任意のプロパティを追加できるソースを検索します。
何かが見つかると、見つかったソースをテストするためのTestボタンが表示されます。それをクリックすると、新しいタブが表示され、コンソールでオブジェクトを作成し、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)