javascript - 为什么 XSS 在创建的 HTML 页面上不起作用?
问题描述
您好,我正在我创建的 HTML 页面中练习 XSS-Attack,但它对我不起作用。这是 HTML 页面:
<!DOCTYPE html>
<html lang="en" xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta charset="utf-8" />
<title>Try to XSS this!</title>
<script language="javascript" type="text/javascript">
var send = function () {
var data = document.getElementById("msg").value;
document.getElementById("demo").innerHTML = data;
}
</script>
</head>
<body>
<p>Enter an XSS exploit here:</p>
<textarea id="msg" rows="10" cols="20"></textarea>
<br />
<input type="button" id="send" onclick="send();"/>
<br>
<p id="demo"></p>
</body>
</html>
这是 XSS-Exploit(我写在 中<textarea>
):
hello</p>
<script>alert("XSS");</script>
<p>
这就是结果(我展示了<p id="demo"></p>
部分):
<p id="demo">
"hello"
<p></p>
<script>alert("XSS");</script>
<p></p>
</p>
并且命令alert("XSS");
不起作用。我做错了什么?
解决方案
脚本标签仅在页面加载时运行;当您将它们动态注入页面时,脚本标签不会运行。对此的常见绕过是使用onerror
或onload
喜欢<img src=x onerror='alert(1)'>
或<svg onload='alert(1)'></svg>
推荐阅读
- c - 在 solaris 10 sparc 上将 perl 编译为 64 位
- javascript - UI Router angularjs Transitions onBefore 返回promise 未编译模板闪烁
- asp.net-mvc - 使用 ASP.net MVC 或 Core 更新经典 ASP
- http - 文本/普通消息(或部分)的日期时间格式
- node.js - 在节点js中出现错误没有这样的文件或目录
- azure - 如何在我的网站上使用 Azure ML 的预测实验
- php - 如何在 Laravel 包中定义控制器路径
- c# - Math.log() 用 c# 给我错误的值
- r - R中列表元素的递归操作
- excel - 忽略countif公式中的字符串值