web-dev-qa-db-ja.com

ブラウザーのXMLパーサーの短絡による脆弱性はありますか?

コンテンツがHTMLであっても、コンテンツタイプのXMLをユーザーのブラウザーに返すようサイトに強制する方法を見つけました。次に、ブラウザーはこのサイトをXMLとして解釈し、有効なXMLにデコードされないJavascriptがHTMLに含まれているため、エラーをスローします。メインブラウザーからさまざまなレベルの情報が返されますが、FFでは次のように表示されます。

XML Parsing Error: not well-formed Location: http://www.example.com/return_xml

Line Number 30, Column 1: var y= (a && a.b ...

二番目 &シンボルはXMLパーサーを壊します。これから(もしあれば)どのような種類の攻撃が実行される可能性がありますか?

私の最初の考えはXXEでしたが、ブラウザはデフォルトでそれを無効にしていると思います。これは非脆弱性のように聞こえますか?

2
iso123

これ自体は脆弱性ではありません。 XMLのレンダリング(有効または無効)が何らかの理由で危険である場合、ブラウザーはそもそもそれを許可しません。

有効にするにはコンテンツをレンダリングする必要があるため、XSSを有効なXMLにすることができない。また、ページにXSSの脆弱性が存在する場合、HTMLとしてレンダリングする場合でも、おそらく悪用される可能性があります。

ただし、頭に浮かぶ攻撃が1つあります。リフレクトファイルのダウンロードです。 URLパスの末尾とドキュメントコンテンツの一部の両方を変更できる場合は、.bat.ps1などの「不正な」ファイル名拡張子を付けてページをダウンロードするリンクを作成できる場合があります。このファイルをローカルで実行すると、被害者のマシンで悪意のあるスクリプトが実行されます。マルウェアをダウンロードします。

これはすべてのブラウザで機能するわけではありません。 SafariとIE8は、XMLファイルをレンダリングしようとするのではなく、downloadダウンロードする唯一のものであるようです。さらに、攻撃は、攻撃者がHTMLまたはXML以外の言語でドキュメントを有効な実行可能スクリプトにするのに十分なコンテンツを挿入できることに依存しています。

RFDに関する優れたホワイトペーパー(Oren Hafifによる) here には、さまざまなブラウザーの動作や悪用の可能性のある方法に関する一連の詳細が含まれています。

2
jupenur