DOM Invader

Support HackTricks

DOM Invader

DOM Invaderは、Burpの内蔵ブラウザにインストールされたブラウザツールです。これは、ウェブメッセージやプロトタイプ汚染を含むさまざまなソースとシンクを使用して、DOM XSS脆弱性を検出するのを支援します。このツールは拡張機能として事前にインストールされています。

DOM Invaderは、ブラウザのDevToolsパネル内にタブを統合し、以下を可能にします:

  1. DOM XSSテストのためのウェブページ上の制御可能なシンクの特定、コンテキストとサニタイズの詳細を提供します。

  2. postMessage()メソッドを介して送信されたウェブメッセージのログ、編集、および再送信。DOM Invaderは、特別に作成されたウェブメッセージを使用して脆弱性を自動検出することもできます。

  3. クライアントサイドのプロトタイプ汚染ソースの検出と、リスクのあるシンクに送信される制御可能なガジェットのスキャン。

  4. DOMクラッキング脆弱性の特定

有効にする

Burpの内蔵ブラウザでBurp拡張機能に移動し、有効にします:

ページをリフレッシュすると、Dev ToolsDOM Invaderタブが表示されます:

カナリアを注入する

前の画像には、ランダムな文字のグループ、つまりカナリアが表示されています。これをウェブのさまざまな部分(パラメータ、フォーム、URLなど)に注入し、毎回検索をクリックしてください。DOM Invaderは、カナリアが利用可能な興味深いシンクに到達したかどうかを確認します。

さらに、URLパラメータを注入するオプションとフォームを注入するオプションは、自動的に新しいタブを開き、見つけたすべてのURLパラメータとフォームカナリアを注入します。

空のカナリアを注入する

ページに潜在的なシンクがあるかどうかを見つけたいだけの場合、たとえそれが悪用できなくても、空のカナリアを検索できます。

メッセージを投稿する

DOM Invaderは、以下の機能を持つウェブメッセージを使用してDOM XSSをテストすることを可能にします:

  1. postMessage()を介して送信されたウェブメッセージのログ、Burp ProxyのHTTPリクエスト/レスポンス履歴ログに似ています。

  2. ウェブメッセージの 変更再発行、手動でDOM XSSをテストするため、Burp Repeaterの機能に似ています。

  3. 自動的な変更とウェブメッセージの送信によるDOM XSSの調査。

メッセージの詳細

各メッセージをクリックすると、メッセージの詳細情報が表示され、クライアントサイドのJavaScriptがメッセージのorigindata、またはsourceプロパティにアクセスするかどうかが含まれます。

  • origin : メッセージのオリジン情報がチェックされていない場合、任意の外部ドメインからイベントハンドラーにクロスオリジンメッセージを送信できる可能性があります。しかし、チェックされている場合でも、安全でない可能性があります。

  • data: ここにペイロードが送信されます。このデータが使用されない場合、シンクは無意味です。

  • source: 通常はiframeを参照するソースプロパティがオリジンの代わりに検証されているかどうかを評価します。これがチェックされていても、検証がバイパスされないことは保証されません。

メッセージに返信する

  1. Messagesビューから、任意のメッセージをクリックしてメッセージ詳細ダイアログを開きます。

  2. 必要に応じてDataフィールドを編集します。

  3. Sendをクリックします。

プロトタイプ汚染

DOM Invaderは、プロトタイプ汚染脆弱性を検索することもできます。まず、有効にする必要があります:

次に、Object.prototypeに任意のプロパティを追加できるソースを検索します。

何かが見つかると、見つかったソースをテストするためのTestボタンが表示されます。それをクリックすると、新しいタブが表示され、コンソールでオブジェクトを作成し、testpropertyが存在するかどうかを確認します:

let b = {}
b.testproperty

一度ソースを見つけると、ガジェットをスキャンできます:

  1. DOMビューの任意の特定されたプロトタイプ汚染ソースの隣にあるガジェットをスキャンボタンをクリックすると、DOM Invaderによって新しいタブが開かれます。適切なガジェットのスキャンが始まります。

  2. 同時に、同じタブでDevToolsパネルにDOM Invaderタブが開かれている必要があります。スキャンが完了すると、特定されたガジェットを介してアクセス可能なシンクがDOMビューに表示されます。例えば、innerHTMLシンクに渡されるhtmlという名前のガジェットプロパティが以下の例に示されています。

DOMクラッキング

前の画像では、DOMクラッキングスキャンをオンにできることがわかります。完了すると、DOM InvaderはDOMクラッキングの脆弱性を探し始めます

参考文献

HackTricksをサポートする

Last updated