Postmessage interceptionオプションの隣にある歯車のアイコンをクリックすると、DOM InvaderがWebメッセージを処理する際の挙動を微調整する設定にアクセスできます。
この設定を有効にするとDOM Invaderは、すべてのメッセージのオリジンを、オリジン本来のドメイン名で始まり、本来のドメイン名で終わる偽のオリジンに自動的に置き換えます。そうすることで、メッセージのオリジンを検証するロジックや正規表現に欠陥のあるイベントハンドラをDOM Invaderが自動的に発見できます。
たとえば、一部のWebサイトでは、オリジンのドメイン名を検証するためにstartsWith()
やendsWith()
メソッドを使用しています。これらのテクニックで、この検証を簡単に回避できるかもしれません。
この設定を無効にした場合でも、メッセージの再送時にSpoof originチェックボックスを選択すれば、個々のリクエストのオリジンを偽装できます。また、入力フィールドで手動でオリジンの変更もできます。
この設定を有効にするとDOM Invaderは、ページ上で送信されるあらゆるメッセージのdata
プロパティにカナリアを自動的に挿入します。DOM Invaderは、JSON文字列、JSONオブジェクト、プレーン文字列のどれが期待されているかを判断し、正しいフォーマットでカナリアを挿入します。
メッセージの詳細を表示する際、ページが送信したオリジナルのデータと自動で挿入されたデータを、Showドロップダウンで切り替えられます。
この設定を有効にすると、DOM Invaderは同じメッセージをグループ化してノイズを低減します。場合によってはこの設定を無効にして、すべてのメッセージを見られるようにもできます。たとえば、個々のメッセージを見て、メッセージが送信されていることを確認したい場合があります。
この設定を有効にすると、DOM Invaderは独自のメッセージを生成し、ページ上で発見したメッセージイベントリスナーへ送信します。これは、潜在的に脆弱なイベントハンドラをテストしたいけれども、通常のページ操作ではメッセージイベントを発生させられない場合に有効です。
DOM Invaderは、各イベントハンドラが期待するデータ構造の情報を推測しようとします。そして、その情報をもとに適切なメッセージを生成し、送信します。
リスナーによる各メッセージの処理方法によって、より危険なシンクにつながる可能性のある追加のコードパスにたどり付けるよう細工した、追加メッセージを生成できます。
DOM Invaderが生成したメッセージは、Messagesビューに数値IDが表示されないため、どのメッセージか判別できます。
この設定を有効にすると、データを含むWebメッセージを、現在のページのURLとは異なるオリジン宛てに送信したときに、DOM Invaderがレポートします。この場合、データを抽出するイベントリスナーを含んだページがiframe
に埋め込まれると、攻撃者がOAuthトークンなどの機密データを窃取できる可能性があります。