Web9: XSS 悪用の種類 - パート 3: Dom ベースの XSS

Web9: XSS 悪用の種類 - パート 3: Dom ベースの XSS

反射型と保存型の 2 種類のXSSエクスプロイトについてはすでに述べましたが、それらはすべて、危険なコードが挿入された後、サーバーの応答後に実行される、つまりエラーがサーバー側にあるという共通の特徴を持っています。この機能に反する別のタイプの XSS 悪用もあり、DOM ベース XSS またはタイプ 0 XSS とも呼ばれる、サーバーを経由せずにクライアント側で悪意のあるコードが即座に実行されます。

まず最初に、DOM とは何なのかを知る必要があります。

DOM は Document Object Model の略で、HTML や XML などの構造化ドキュメントのデータを取得および操作するために提案された W3C (http://www.w3.org/DOM/) の標準形式です。このモデルは、ドキュメントを階層ツリー構造として表します。 HTML および XML のすべての要素はノードとみなされます。

DOM ベース XSS は、ドキュメント、特に HTML の DOM 構造の変更に基づいた XSS 活用手法です。

以下に具体的な例を見てみましょう。

Web サイトには、登録ページへの次の URL があります。

example.com/register.php?message=Please fill in the form

これにアクセスすると、非常に通常のフォームが表示されます。

Web9: XSS 悪用の種類 - パート 3: Dom ベースの XSS

この通知のソース コードをよく見ると、フォーム上の通知コンテンツに渡されるメッセージ パラメーターを簡単に推測できます。

Web9: XSS 悪用の種類 - パート 3: Dom ベースの XSS

JavaScript セグメントは、メッセージ パラメーターから値を取得して出力する役割を果たします。この緩い入力チェックにより、ユーザーをだまして危険な URL にアクセスさせる可能性は十分にあります。

キャストの代わりに:

message=Please fill in the form

次に送信します:

message=GenderMaleFemale

function show(){alert();}

すると、登録フォームは次のようになります。

Web9: XSS 悪用の種類 - パート 3: Dom ベースの XSS

ユーザーはこのような「通常の」フォームを疑うことはなく、性別を選択するとスクリプトが実行されます。

Web9: XSS 悪用の種類 - パート 3: Dom ベースの XSS

message パラメータで渡される値についてもう少し詳しく説明します。

GenderMaleFemale

function show(){alert();}

その主な目的は、select タグで onchage イベントが発生するたびに show() 関数を実行することですが、ここでの show() 関数は単にスクリプトが実行されたことを示すためにポップアップ表示されます。ただし、実際には、ハッカーはこの show() 関数を使用して、ユーザーの Cookie 値を所定のサーバーに送信するスクリプトを実行することがよくあります。読者は、ハッカーがどのようにこのリクエストを作成するかについて言及している記事「Reflected XSS」を参照することができます。

この例から 2 つの重要な結論が得られます。まず、悪意のあるコードは、select タグ内の値をクリックするとすぐに実行されました。これは、サーバーの応答を経由せずに、クライアント側で直接実行されたことを意味します。次に、渡されたスクリプトによって HTML 構造が変更されています。また、実際の悪用シナリオも確認できます。ユーザーをだまして悪意のあるコードが埋め込まれた URL にアクセスさせるという点では、DOM Based は Stored XSS よりも Reflected XSS にやや似ています。

次の図は、DOM ベースの XSS 攻撃手法を実装する各ステップを説明しています。

Web9: XSS 悪用の種類 - パート 3: Dom ベースの XSS

以下は、WhiteHat.vn フォーラムのメンバーが DOM ベースの XSS を介してエクスプロイトを実行しているビデオです。

幸運を!


Windows 10で欠落しているデフォルトの電源プランを復元する方法

Windows 10で欠落しているデフォルトの電源プランを復元する方法

このガイドでは、Windows 10でデフォルトの電源プラン(バランス、高パフォーマンス、省電力)を復元する方法を詳しく解説します。

Windows 10 で BlueStacks 5 の仮想化 (VT) を有効にする方法

Windows 10 で BlueStacks 5 の仮想化 (VT) を有効にする方法

仮想化を有効にするには、まず BIOS に移動し、BIOS 設定内から仮想化を有効にする必要があります。仮想化を使用することで、BlueStacks 5 のパフォーマンスが大幅に向上します。

WiFi接続に接続する際のドライバーの切断を修正

WiFi接続に接続する際のドライバーの切断を修正

WiFi 接続に接続するときにドライバーが切断されるエラーを修正する方法を解説します。

Windows での DIR コマンドの使用方法

Windows での DIR コマンドの使用方法

DIR コマンドは、特定のフォルダーに含まれるすべてのファイルとサブフォルダーを一覧表示する強力なコマンド プロンプト コマンドです。 Windows での DIR コマンドの使用方法を詳しく見てみましょう。

ソフトウェアを使わずに Windows 10 アプリをバックアップおよび復元する方法

ソフトウェアを使わずに Windows 10 アプリをバックアップおよび復元する方法

ソフトウェアなしで Windows 10 アプリをバックアップし、データを保護する方法を説明します。

Windows でローカル グループ ポリシー エディターを開くための 11 のヒント

Windows でローカル グループ ポリシー エディターを開くための 11 のヒント

Windows のローカル グループ ポリシー エディターを使用して、通知履歴の削除やアカウントロックの設定を行う方法を説明します。

最高の IP 監視ツール 10 選

最高の IP 監視ツール 10 選

重要なリソースを簡単に監視及び管理できる<strong>IP監視</strong>ソフトウェアがあります。これらのツールは、ネットワーク、インターフェイス、アプリケーションのトラフィックをシームレスに確認、分析、管理します。

AxCrypt ソフトウェアを使用してデータを暗号化する方法

AxCrypt ソフトウェアを使用してデータを暗号化する方法

AxCrypt は、データの暗号化に特化した優れたソフトウェアであり、特にデータ セキュリティに優れています。

Windows 10 Creators Updateのアップデート後にシステムフォントを変更する方法

Windows 10 Creators Updateのアップデート後にシステムフォントを変更する方法

システムフォントのサイズを変更する方法は、Windows 10のユーザーにとって非常に便利です。

Windows 10で機内モードをオフにできないエラーを修正する方法

Windows 10で機内モードをオフにできないエラーを修正する方法

最近、Windows 10にアップデートした後、機内モードをオフにできない問題について多くのユーザーから苦情が寄せられています。この記事では、Windows 10で機内モードをオフにできない問題を解決する方法を説明します。