7

入力ボックスに入力されたスクリプトを実行する XSS 脆弱な Web ページを作成したいと考えています。ここにこのコードを書きましたが、スクリプトを入力しても何も起こりません。

<html>

<head>
</head>

<body>
<script type="text/javascript">
function changeThis(){
    var formInput = document.getElementById('theInput').value;
    document.getElementById('newText').innerHTML = formInput;
    localStorage.setItem("name","Hello world!!!");
}
</script>

<p>You wrote: <span id='newText'></span> </p> 

<input type='text' id='theInput' value='Write here' />
<input type='button' onclick='changeThis()' value='See what you wrote'/>
</body>

</html>

助けてください。コードをどのように変更すればよいですか?
更新:反映された XSS を実行しようとしていました。私によると、入力にスクリプトを入力すると実行されるはずです。これは、ユーザーが有効な入力を入力したかどうかを確認しておらず、スクリプトを実行しないアクションを実行している場合にのみ発生します。 これは、次のようなスクリプトを入力するたびに XSS に対して脆弱な
Web ページです。入力フィールドでスクリプトが実行されます。 それと私がしていることの主な違いは何ですか?www.insecurelabs.org/task/Rule1<script> alert("hell"); </script>

4

2 に答える 2

3

innerHTML を使用してスクリプト タグを挿入すると、スクリプトは実行されません。

代わりにできることは、onload イベント ハンドラーを使用して画像を挿入することです。

<img src="someImage.gif" onload="alert('hacked!')" />

[更新] 最後の質問について: 主な違いは、innerHTML を使用しているのに対し、insecurelabs ページでは jQuery.html() を使用していることです。jQuery アプローチはスクリプトを実行します。

ライブデモ: http://jsfiddle.net/wqqWt/

于 2013-04-05T19:35:10.390 に答える