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 を介してエクスプロイトを実行しているビデオです。

幸運を!


2024 年世界の安価な SSL 証明書プロバイダー トップ 10

2024 年世界の安価な SSL 証明書プロバイダー トップ 10

SSL 証明書は、機密の顧客情報を安全に保ち、オンライン ビジネスのための安全な環境を構築するのに役立ちます。

Windows でワイヤレス ネットワーク アダプターの優先周波数帯域を変更する方法

Windows でワイヤレス ネットワーク アダプターの優先周波数帯域を変更する方法

このガイドでは、Windows 7、Windows 8、および Windows 10 のワイヤレス ネットワーク アダプターに既定で使用される優先周波数帯域を (5 GHz または 2.4 GHz に) 変更する方法を説明します。

プロセッサ アフィニティとは何ですか? Windows 10 でプロセッサ アフィニティを設定する方法

プロセッサ アフィニティとは何ですか? Windows 10 でプロセッサ アフィニティを設定する方法

ただし、すべてのコアではなく 1 つまたは 2 つのコアのみを使用するようにプログラムをセットアップすることは可能です。この投稿では、Quantrimang.com がプロセッサ アフィニティとは何か、および Windows 10 でプロセッサ アフィニティを設定する方法について説明します。

プライバシー保護が最悪の VPN は避けるべきです

プライバシー保護が最悪の VPN は避けるべきです

VPN テクノロジーの人気の高まりにより、範囲、手法、大胆さが異なるさまざまな詐欺が発生しています。

Windows 10でPCをリモートロックする方法

Windows 10でPCをリモートロックする方法

Windows 10 には、デバイスを追跡するだけでなく、リモートでロックすることもできる優れた機能があります。

SpyHunter を使用してスパイウェアを削除し、キーロガーを防ぐ方法

SpyHunter を使用してスパイウェアを削除し、キーロガーを防ぐ方法

SpyHunter は、コンピュータ上のマルウェア、スパイウェア、およびキーロガー対策ソフトウェアを検索して破壊するソフトウェアです。

Windows 10 の新しいハード ドライブ容量分析ツール、ディスク使用量を試してみる

Windows 10 の新しいハード ドライブ容量分析ツール、ディスク使用量を試してみる

ディスク使用量は C:\Windows\System32\diskusage.exe にあり、discusage /? と入力すると使用方法の説明が表示されます。このユーティリティは、ドライブ全体または指定したフォルダーをスキャンし、各フォルダーの使用量を報告します。

Windows 10/11にMoon Knightテーマをインストールする方法

Windows 10/11にMoon Knightテーマをインストールする方法

Moon Knight テーマ セットは非常に高品質で、すぐにコンピュータにインストールする価値があります。

「ファイル名を指定して実行」コマンドを使用して Windows アプリケーションをすばやく開く手順

「ファイル名を指定して実行」コマンドを使用して Windows アプリケーションをすばやく開く手順

Windows でアプリケーションをすばやく開く必要がある場合、キーボード ショートカットを使用することがよくあります。ただし、「ファイル名を指定して実行」コマンドを使用するという別の方法があることを知っている人はほとんどいません。 Windows でさまざまなアプリケーションを開くための [ファイル名を指定して実行] には多くのコマンドがありますが、最も一般的なのは、以下のアプリケーションを開くための 5 つのコマンドです。ご参照ください。

Windows 10 コンピューターにウイルスが感染しています。修復方法は次のとおりです。

Windows 10 コンピューターにウイルスが感染しています。修復方法は次のとおりです。

悪意のあるコードがコンピュータにインストールされると、すぐにコンピュータが制御され、非常に重大なエラーが発生する可能性があります。ダウンロードしてインストールするウイルス対策ソフトウェアであっても、場合によっては偽のソフトウェアである可能性があり、コンピュータに損害を与える可能性があります。