gpt4 book ai didi

javascript - 使用有意的 HTML 注入(inject)创建 HTML

转载 作者:搜寻专家 更新时间:2023-10-31 22:52:27 28 4
gpt4 key购买 nike

我是一名网络安全专业的学生,​​正在尝试了解一些基本的 HTML 注入(inject)。我已经在这段代码上工作了几天,无法理解我做错了什么。我目前拥有的代码确实允许注入(inject),例如,如果我输入 <h1>test</h1>进入文本框,它会将测试显示为标题。但是如果我尝试 <script>alert(1)</script>它实际上不会运行脚本。我尝试将文本框的值设置为“”,或者认为我可以通过在文本框中输入以下内容来关闭该行:"><script>alert(1)</script>

我还尝试通过在末尾添加注释来取消代码的其余部分,如下所示:<script>alert(1)</script><!--

我尝试了多种组合,但都没有成功。现在我实际上需要能够注入(inject)脚本,因为我正在使用 CSP 以及它如何影响将脚本注入(inject)网页。我目前没有指定会限制 JavaScript 运行的 csp。我尝试过的其他一些事情包括使用不同的浏览器、更改浏览器安全性以及确保在浏览器中启用 JavaScript。任何帮助将不胜感激!!

<html>
<script language='JavaScript'>
function getwords(){
textbox = document.getElementById('words');
label = document.getElementById('label');
label.innerHTML = textbox.value;
}
</script>

<body>
<input type="text" id="words">
<input type="button" onclick="getwords()" id="Button" value="Enter" />
<label id="label">
</label>
</body>
</html>

最佳答案

那是因为 <script> s 在页面加载时运行,并且当 label的内容改变,脚本已经运行。

但是,如果你注入(inject) <script>标记到不同的页面(通过后端(XSS 表示跨站点 脚本)),它确实有效。

或者,要使其在页面加载后注入(inject)内容(如您的情况)的情况下工作,您可以使用 JS 事件(如 onclick)来运行您的代码:

<div onclick="alert(1)">Click me!</div>

或者,要在没有用户交互的情况下执行它,您可以使用 <iframe>onload事件:

<iframe onload="alert(1)" style="display:none"></iframe>

关于javascript - 使用有意的 HTML 注入(inject)创建 HTML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58169889/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com