2012-01-19 10 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>という要素があり、2番目のものが読み込もうとしていることに干渉しています.2 bodyタグがあるとどうなりますか?この場合、あなたは余分なbodyタグを削除してiframeを置き換える可能性があります

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

iframeがDOMに追加されて行われているときに、あなたのJSが呼び出されます。

+0

ご返信ありがとうございます。申し訳ありませんが、クローズスクリプトのタグが元のソースにありますので、コードを入力する際に​​インデントするのを忘れてしまったに違いありません。イベントハンドラをonloadに変更することはトリックでした。何百万ものバリエーションを試してみましたが、すべてイベントハンドラがHTMLの別の部分に入っていました。どうもありがとう! – Jingo

関連する問題