私は最近CTFに参加しましたが、そのCTFのソリューションはブラウザのこの奇妙な動作に基づいています。
最初のケースで、HTMLコメント内にスクリプトタグを含め、そのコメントを閉じない場合、ブラウザ(Firefox)は、本文部分を含むコメントとしてその後のコンテンツ全体を想定します。そして警告は出ませんでした。
コード:
<script>
alert(1);
<!--<script
alert(2);
</script>
<body>Hello</body>
ブラウザ:
Secondでは、すべてのコードは同じですが、コメントからスクリプトタグを削除し、ブラウザはその位置でコメントを終了し、他のすべてのコードはスムーズに実行されます。両方のアラートがポップされました1,2
コード:
<script>
alert(1);
<!--
alert(2);
</script>
<body>Hello</body>
ブラウザ:
だから私は2つの質問があります。
それらに答えるか、リソースをポイントしてください。そして、質問を自由に変更してください。私はこの分野に不慣れで、ごみを追加した可能性があります。
確かに興味深い状況です。まず、_<script>
_タグをネストすることはできません。最初のケースでは
_alert(1);
<!--<script
alert(2);
</script>
<body>Hello</body>
_
_<script
_に_>
_がありません。それでもうまくいきません。ただし、これを_</script>
_に置き換えると、alert(1)が実行されます。 2番目のケースは、alert(2)
が_<script>
_タグ内に含まれる場合と同じです。