繁体   English   中英

注入的JavaScript函数未执行

[英]Injected JavaScript function not executing

作为我要向客户展示的XSS缺陷的一部分,我试图注入一些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中。 但是,当我将此代码注入到我的测试界面中时,iframe会出现,但是点击并不会执行该功能并检索所需的网页。 我正在从同一域中检索页面,因此它没有违反相同的来源策略(据我所知)。 谁能告诉我我在做什么错? 非常感谢。

这是因为默认情况下,SCRIPT标记的内容将被忽略。 您必须遍历SCRIPT对象的结果HTML数据的DOM树,并手动eval其内容。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM