XSS漏洞的Web页面的创建(Creation of XSS vulnerable web page

2019-08-19 22:27发布

我想创建一个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。 据我,如果我在输入其应该执行输入脚本。 当我没有检查用户输入一个有效的输入与否及采取行动不执行脚本这才会发生。
这里是一个网页www.insecurelabs.org/task/Rule1这是XSS脆弱的时候都给我键入一个脚本,如: <script> alert("hell"); </script> <script> alert("hell"); </script>在输入字段执行脚本。
我想知道的是什么之间的主要区别和我在做什么?

Answer 1:

如果您使用innerHTML注入一个脚本标签......该脚本将无法运行!

你可以做的反而是与onload事件处理程序注入的图像:

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

[更新]关于你的最后一个问题:主要的区别是,你正在使用的innerHTML,而insecurelabs页面使用jQuery.html()。 jQuery的方法将运行该脚本。

现场演示: http://jsfiddle.net/wqqWt/



Answer 2:

只是eval代码:

function changeThis(){
    var formInput = document.getElementById('theInput').value;
    eval(formInput);
}


文章来源: Creation of XSS vulnerable web page