web-dev-qa-db-ja.com

OWASP ASVSがHTTP応答で文字セットを指定するコンテンツヘッダーを必要とするのはなぜですか?

OWASPアプリケーションセキュリティ検証標準([〜#〜] asvs [〜#〜])、バージョン3では、V11.2節に次のように記載されています。

すべてのHTTP応答に、安全な文字セットを指定するコンテンツタイプヘッダーが含まれていることを確認します(例:UTF-8ISO 8859-1)。

この要件を無視することの脅威は何であり、これをどのように悪用することができますか?

3
countermode

クライアント側の攻撃を減らします。

例:XSSが常駐するページがページ文字セットヘッダーを提供しない場合、またはUTF-7エンコーディングに設定されている任意のブラウザーを次のように利用できます。たとえば(UTF-7エンコーディング):

+ADw-SCRIPT+AD4-alert('XSS');+ADw-/SCRIPT+AD4-

XSS攻撃を防ぐのは難しい

詳細: tf-7を使用したXSS

6
Sajjad Pourali

Leviathan SecurityのBlake Franzによる2008年の論文- http://www.leviathansecurity.com/white-papers/flirting-with-mime-types -元の問題空間の一部を文字で識別セット。

Burp Suite Professionalなどの一部のツールは、この問題を正しく識別して説明します- https://portswigger.net/KnowledgeBase/Issues/Details/00800200_HTMLdoesnotspecifycharset

格納されたXSSのOWASPテストガイドで文字セットの言及が表示されます。

この設計上の欠陥は、ブラウザのMIMEの不正処理攻撃に悪用される可能性があります。たとえば、JPGやGIFなどの無害に見えるファイルには、ブラウザによって読み込まれたときに実行されるXSSペイロードを含めることができます。これは、image/gifなどの画像のMIMEタイプをtext/htmlに設定できる場合に可能です。この場合、ファイルはクライアントブラウザによってHTMLとして扱われます。

また、Internet Explorerは、MIMEタイプをMozilla Firefoxや他のブラウザーと同じように処理しないことも考慮してください。たとえば、Internet ExplorerはHTMLコンテンツとしてTXTファイルをHTMLコンテンツとして処理します。MIME処理の詳細については、この章の下部にあるホワイトペーパーセクションを参照してください。

詳細については、Wikipediaのページの「Charset Sniffing」 https://en.wikipedia.org/wiki/Content_sniffing をご覧ください。

1
atdre