gpt4 book ai didi

javascript - 注入(inject)的 JavaScript 函数未执行

转载 作者:行者123 更新时间:2023-11-30 06:00:30 25 4
gpt4 key购买 nike

作为我试图向客户展示的 XSS 漏洞的一部分,我正在尝试注入(inject)一些 JavaScript

  1. 检索网页,
  2. 编辑该网页的源代码,以及
  3. 使用新源生成一个 iframe。

这是我的代码:

<script>

function getSource()

{
xmlhttp=new XMLHttpRequest();
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
var content=xmlhttp.responseText;
content = content.replace(/hey/gi, "howdy");
var ifrm = document.getElementById('myIframe');
ifrm = (ifrm.contentWindow) ? ifrm.contentWindow : (ifrm.contentDocument.document) ? ifrm.contentDocument.document : ifrm.contentDocument;
ifrm.document.open();
ifrm.document.write(content);
ifrm.document.close();
}
}
xmlhttp.open("GET","http://www.site.com/pagetopull.html",true);
xmlhttp.send();
}

</script>

<button onclick="getSource();">click</button>

<iframe id="myIframe"></iframe>

如果我将这段代码包裹在 html 标签中,然后将其放入自己的页面并点击,代码将完美执行,检索到的页面将显示在 iframe 中。然而,当我将这段代码注入(inject)我的测试界面时,iframe 出现了,但点击并没有执行该功能并检索到所需的网页。我正在从同一个域中检索一个页面,因此它没有违反同源策略(据我所知)。谁能告诉我我做错了什么?非常感谢。

最佳答案

那是因为默认情况下 SCRIPT 标签的内容会被忽略。您必须为 SCRIPT 对象遍历生成的 HTML 数据的 DOM 树,并手动eval它们的内容。

关于javascript - 注入(inject)的 JavaScript 函数未执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8924602/

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