2012-01-19 5 views
0

Я пытался использовать этот код в некоторых исследованиях XSS, которые я проводил. Я хочу создать iframe на уязвимой странице с текстом по своему выбору. Если я возьму приведенный ниже код и поместил его в html-теги и перейду к нему, тогда iframe будет создан, как и ожидалось, с текстом. Однако, если я попытаюсь ввести код в свою тестовую поверхность (чертовски уязвимое веб-приложение), окно 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 body тегов. Если это так, то вы можете удалить дополнительный body тега и заменить iframe с:

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

Тогда ваш JS будет вызываться, когда iframe делается добавление в DOM.

+0

Спасибо за ваш ответ. Извините, что тег закрывающего скрипта присутствует в моем исходном исходном коде, я, должно быть, забыл его отступы при вводе кода. Изменение обработчика событий на загрузку сделало трюк - я пробовал миллион вариантов, но у всех был обработчик событий в отдельном фрагменте html. Большое спасибо! – Jingo

Смежные вопросы