注入时iframe代码不执行

时间:2012-01-19 21:55:06

标签: javascript iframe

我一直在尝试在我正在进行的一些XSS研究中使用此代码。我希望在易受攻击的页面上使用我选择的文本生成iframe。如果我使用下面的代码并将其放在html标签中并浏览到它,那么iframe就会按照预期的文本创建。但是,如果我尝试将代码注入我的测试表面(该死的易受攻击的Web应用程序),则会生成iframe窗口,但不会生成任何文本。任何人都可以告诉我这里发生了什么,是否有办法解决它?

<script type="text/javascript">

    function populateIframe() {
        var ifrm = document.getElementById('myIframe');
        ifrm = (ifrm.contentWindow) ? ifrm.contentWindow : (ifrm.contentDocument.document) ? ifrm.contentDocument.document : ifrm.contentDocument;
        ifrm.document.open();
        ifrm.document.write("hello world!");
        ifrm.document.close();
    }
</script>
<body onload="populateIframe();">
<iframe id="myIframe"></iframe>

谢谢!

1 个答案:

答案 0 :(得分:2)

尝试关闭<script>代码。


如果这没有帮助,可能没有populateIframe()被调用

在不完全了解您的情况的情况下,我冒昧地认为易受攻击的页面已经有一个<body>元素干扰了您想要加载的第二个元素。不确定当有2个body标签时会发生什么。如果是这种情况,您可以删除额外的body代码并将iframe替换为:

<iframe id="myIframe" onload="populateIframe();"></iframe>

然后,当iframe完成添加到DOM时,将调用您的JS。