5

Chrome ではRefused to execute a JavaScript script. Source code of script found within request.、ドメイン名を含むデータを投稿した後にエラーが発生します (どちらのページにも JavaScript がないことに注意してください)。

badpage1.html :

<form action="/badpage2.html" method="post">
<input type="hidden" name="name" value="href=%22http://www.w3.org/%22"/>
<input type="submit" name="submit"/>
</form>

badpage2.html :

<!DOCTYPE html>
<html>
    <head>
        <base href="http://www.w3.org/"/>
    </head>
    <body>
        <img src="Icons/w3c_home" alt="">
    </body>
</html>

直接アクセスするとbadpage2.html画像が表示されますが、 経由badpage1.htmlでアクセスすると画像は表示されません (base タグは機能しません)。

これは Chrome XSS 検出のバグですか? そうでない場合、どうすればこれをバイパスできますか?このフィルターをバイパスするためだけに、投稿されたデータをエンコードするのはばかげているようです。

編集:

私の場合、送信される投稿値は、ページのコンテンツの一部を更新することです。問題は、(この例のように) で使用されているドメイン名が含まれている場合に発生し、タグ<base>を無効にする XSS 検出がトリガーされます。<base>

4

1 に答える 1

3

X-XSS-Protection保護のためにめちゃくちゃになっているページで、カスタム HTTP ヘッダーを送信できることがわかりました。

PHP ソリューションに以下のコードを使用します。

header( "X-XSS-Protection: 0" );
于 2012-03-02T19:57:12.063 に答える