首页 > 解决方案 > 为什么 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");不起作用。我做错了什么?

标签: javascripthtmlxss

解决方案


脚本标签仅在页面加载时运行;当您将它们动态注入页面时,脚本标签不会运行。对此的常见绕过是使用onerroronload喜欢<img src=x onerror='alert(1)'><svg onload='alert(1)'></svg>


推荐阅读