2012-01-19 91 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