10 KiB
DOM Invader
☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥
- サイバーセキュリティ企業で働いていますか? HackTricksで会社を宣伝したいですか?または、PEASSの最新バージョンにアクセスしたり、HackTricksをPDFでダウンロードしたいですか?SUBSCRIPTION PLANSをチェックしてください!
- The PEASS Familyを見つけてください。独占的なNFTのコレクションです。
- 公式のPEASS&HackTricksのグッズを手に入れましょう。
- 💬 Discordグループまたはテレグラムグループに参加するか、Twitterでフォローしてください🐦@carlospolopm。
- ハッキングのトリックを共有するために、hacktricks repo および hacktricks-cloud repoにPRを提出してください。
DOM Invader
DOM Invaderは、Burpの組み込みブラウザにインストールされたブラウザツールです。Webメッセージやプロトタイプ汚染を含むさまざまなソースとシンクを使用して、DOM XSSの脆弱性を検出するのに役立ちます。このツールは拡張機能として事前にインストールされています。
DOM Invaderは、ブラウザのDevToolsパネル内にタブを統合し、次の機能を提供します。
- DOM XSSテストのためのウェブページ上の制御可能なシンクの特定。コンテキストとサニタイズの詳細も提供します。
postMessage()
メソッドを介して送信されたウェブメッセージのログ記録、編集、再送信。DOM Invaderは、特別に作成されたウェブメッセージを使用して脆弱性を自動的に検出することもできます。- クライアントサイドのプロトタイプ汚染ソースの検出と、リスクのあるシンクに送信される制御可能なガジェットのスキャン。
- DOM clobberingの脆弱性の特定。
有効化する
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
が存在するかどうかを確認します。
let b = {}
b.testproperty
ソースを見つけたら、ガジェットをスキャンできます:
- DOMビューから、DOM Invaderが見つけたプロトタイプ汚染ソースの隣にあるガジェットをスキャンボタンをクリックします。DOM Invaderは新しいタブを開き、適切なガジェットをスキャンし始めます。
- 同じタブで、DevToolsパネルのDOM Invaderタブを開きます。スキャンが終了すると、DOMビューには、特定のガジェットを介してアクセスできるシンクが表示されます。以下の例では、
innerHTML
シンクに渡されたhtml
というガジェットプロパティが表示されています。
DOM clobbering
前の画像では、DOM clobberingスキャンをオンにすることができます。これを行うと、DOM InvaderはDOM clobberingの脆弱性を検索し始めます。
参考文献
- https://portswigger.net/burp/documentation/desktop/tools/dom-invader
- https://portswigger.net/burp/documentation/desktop/tools/dom-invader/enabling
- https://portswigger.net/burp/documentation/desktop/tools/dom-invader/dom-xss
- https://portswigger.net/burp/documentation/desktop/tools/dom-invader/web-messages
- https://portswigger.net/burp/documentation/desktop/tools/dom-invader/prototype-pollution
- https://portswigger.net/burp/documentation/desktop/tools/dom-invader/dom-clobbering
☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥
- サイバーセキュリティ企業で働いていますか? HackTricksであなたの会社を宣伝したいですか?または、PEASSの最新バージョンにアクセスしたり、HackTricksをPDFでダウンロードしたりしたいですか?SUBSCRIPTION PLANSをチェックしてください!
- The PEASS Familyを発見しましょう、私たちの独占的なNFTのコレクション
- 公式のPEASS&HackTricksのグッズを手に入れましょう
- 💬 Discordグループまたはテレグラムグループに参加するか、Twitterで私をフォローしてください🐦@carlospolopm。
- ハッキングのトリックを共有するには、hacktricks repo と hacktricks-cloud repo にPRを提出してください。