web-dev-qa-db-ja.com

XML属性値のXSSおよびXXEペイロード

ファイルアップロードの機能を備えたウェブアプリケーションをテストしています。可能なファイル形式はXMLのみです。 XML属性で保存されたファイルのコンテンツは、別のページに表示されます。

たとえば、XMLファイルは次のようになります。

<?xml version="1.0" encoding="utf-8"?>
<Request xmlns="http://www.w3.org/1.0">
<Body CaseId="Test/123656">
    <person gender="female">
    <note date="2008-01-10">
</Body>
</Request>

CaseID、性別、日付の値は、別のページに示されています。 Webアプリケーションが「<」をブロックする場合、属性値で何らかの方法でXSSペイロードを送信することは可能ですか? XXEもテストしたいのですが、属性値で外部エンティティを参照できますか?

1
user187205

XMLパーサーは通常Unicodeを解釈するため、\u00HHという形式を使用して<>の検証をバイパスできます。次に例を示します。

\u003Cscript\u003Ealert(1);\u003C/script\u003E

XMLパーサーがビューに表示するデータ構造を読み取ると、Unicode文字が解釈され、結果は次のようになります。

<script>alert(1);</script>

この情報がお役に立てば幸いです。

1
hmrojas.p