【发布时间】:2014-05-07 06:56:41
【问题描述】:
我正在尝试使用 html 文件创建基于 DOM 的攻击。 文件如下:
<html>
<head>
<script type="text/javascript">
function fun() {
var val = document.getElementById("mytext").value;
document.getElementById("p1").innerHTML = unescape(val);
}
</script>
</head>
<body>
<p id ="p1">Empty</p>
Give input : <input id="mytext" type="text" value="abcd" >
<input type="button" id="b1" onclick="fun()" value="Change link" >
</body>
</html>
当我在文本框中传递<script>alert('hello world');</script> 并单击按钮时,p 标签不会运行脚本。可能的原因是什么?我正在学习 XSS 来测试我们网站的安全性。
【问题讨论】:
-
您可以使用 $("#p1").html(val) 代替不执行脚本标签的普通 innerHTML。或者, eval() 脚本标签内容,但是为什么要在那个时候打扰呢?
-
Can scripts be inserted with innerHTML? 的可能重复项,换句话说,您的测试平台无效。对于 XSS,可以使用此问题中描述的一种技术
-
我将方法更改为 function fun() { var val = document.getElementById("mytext").value; var source = document.getElementById("p1"); source.innerHTML = val;评估(source.innerHTML);仍然无法正常工作
-
另外我认为现代浏览器已经对 xss 攻击有了某种保护,尝试在 ie 6,7 等旧浏览器中进行测试
标签: javascript html dom xss