Javascript 创建XSS易受攻击的网页

Javascript 创建XSS易受攻击的网页,javascript,html,security,Javascript,Html,Security,我想创建一个XSS易受攻击的网页,执行输入框中输入的脚本。这里我已经写了这段代码,但每当我输入脚本时,什么都不会发生 <html> <head> </head> <body> <script type="text/javascript"> function changeThis(){ var formInput = document.getElementById('theInput').value; document

我想创建一个XSS易受攻击的网页,执行输入框中输入的脚本。这里我已经写了这段代码,但每当我输入脚本时,什么都不会发生

<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>

函数changeThis(){
var formInput=document.getElementById('theInput')。值;
document.getElementById('newText')。innerHTML=formInput;
setItem(“name”,“Hello world!!!”;
}
你写道:

请帮忙。我应该如何修改代码?
更新:我正在尝试做反射XSS。根据我的说法,如果我在input中输入脚本,它应该执行。只有当我没有检查用户是否输入了有效的输入,并且没有采取措施不执行脚本时,才会发生这种情况。
这是一个网页
www.securelabs.org/task/Rule1
,每当我键入类似以下脚本时,它都会受到XSS攻击:
alert(“hell”)

我想知道这与我正在做的主要区别是什么?

如果使用innerHTML注入脚本标记。。。脚本无法运行

您可以改为使用onload事件处理程序注入图像:

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

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

现场演示:

只需代码:

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

XSS是攻击者可以将持久HTML注入页面的时间。直接修改页面不是XSS。任何人都可以在开发人员控制台上随时这样做。不,我正在尝试REFXSS。您可能想看看:反射的XSS依赖于通过查询字符串注入脚本。您的表单应该只向同一页面发出GET请求,并让JavaScript分析
窗口.位置.搜索
以查找RXSS数据。@Naman我建议您将问题编辑得更具体一些,并澄清您所说的xss或甚至反射xss的确切含义。我已经对该问题作了更多解释。我知道不是,但是它能满足OP的要求(除非你在输入字段中键入url,然后Christophe会给出答案)。好吧,我猜一张反对票是用来回答OP的问题的,尽管OP的语言不准确;第二个问题是什么,“eval是邪恶的”?否决,因为你的方法在功能上是不相关的。由于假设输入只是标记而无意中运行代码与主动评估您认为是代码的输入完全不同。这是疏忽与意图的较量。@Travis我没有假设任何事情,请看OP上的第一句话:我想创建一个xss易受攻击的网页,并执行输入中输入的脚本box@bfavaretto,关键区别在于“脚本”而不是“脚本”。如果他想执行脚本,他会使用eval。如果他想执行“a”脚本,他会使用标签。这是关于他问题背后的心态和意图。@zzzzBov是的,但根据发布的代码,我相信这篇作品实际上意味着脚本注入。@zzzzBov,他从来没有说过。这确实解决了“什么也没发生”的问题,这将允许OP克服困难,继续他的探索根据OP写的,他实际上想要XSS,他尝试的代码只是脚本注入。@Naman我已经更新了我的答案来回答你的最后一个问题。