2012-01-19 64 views
0

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

尝试关闭您的<script>标记。


如果没有帮助,它可能是populateIframe()不会被调用

不知道你的情况正是我冒昧地说弱势网页已有<body>元素与你的第二个的希望load..not精确把握的时候有2个body标签会发生什么干扰。如果是这样的话,你可能会删除多余的body标签,并与更换iframe

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

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

+0

感谢您的回复。抱歉,关闭脚本标记存在于我的原始源代码中,当我输入代码时,我一定忘了将其缩进。将事件处理程序更改为onload的技巧 - 我尝试了一百万个变体,但所有事件处理程序都在一个单独的html中。非常感谢! – Jingo