A Practical Guide to DOM Based XSS|Lucideus Research

(または一部のテキストでは”type-0XSS”と呼ばれています)は、元のクライアントサイドスクリプトで使用されている被害者のブラウザのDOM”環境”を変更した結果として攻撃ペイロードが実行されるXSS攻撃であり、クライアントサイドコードは”予期しない”方法で実行されます。 つまり、ページ自体(つまりHTTP応答)は変更されませんが、DOM環境で発生した悪意のある変更により、ページに含まれるクライアント側のコードの実行方法が異

これは、攻撃ペイロードが応答ページに配置される他のXSS攻撃(格納または反映)とは対照的です(サーバー側の欠陥のため)。

HTMLエスケープその後、実行コンテキスト

危険なHTMLメソッド

属性

要素内のHTMLサブテキストに信頼されていないデータを挿入する前にJavaScriptエスケープ。innerHTML=”<HTML>タグとマークアップ”;

要素。outerHTML=”<HTML>タグとマークアップ”;

メソッド

ドキュメント。write(“<HTML>タグとマークアップ”);

ドキュメント。WRITELN(“<HTML>タグとマークアップ”);

ガイドライン

DOMセーフでHTMLに動的な更新を行うには、OWASPは

A)HTMLエンコードし、次に

b)JavaScriptは、これらの例に示すように、すべての信頼されていない入力をエンコードすることをお勧めします。

要素。innerHTML=”<%=エンコーダー。encodeForJS(エンコーダー。encodeForHTML(untrustedData))%>”;

要素。outerHTML=”<%=エンコーダー。encodeForJS(エンコーダー。encodeForHTML(untrustedData))%>”;

文書。書き込み(“<%=エンコーダー。encodeForJS(Encoder.encodeForHTML(untrustedData))%>”);

document.writeln(“<%=Encoder.encodeForJS(Encoder.encodeForHTML(untrustedData))%>”);

コメントを残す

メールアドレスが公開されることはありません。