2012-01-19 2 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> 요소가있어 두 번째 사용자가로드하려고하는데 ... body 태그가있을 때 어떤 일이 발생하는지 정확히 알지는 못합니다. 이 경우, 당신은 여분의 body 태그를 제거하고 함께 iframe을 대체 할 수있는 다음 iframe가 DOM에 추가 할 때

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

이 그런 다음 JS가 호출됩니다.

+0

답장을 보내 주셔서 감사합니다. 죄송합니다 닫는 스크립트 태그가 내 원본 소스에 내 코드에서 입력 할 때 들여 쓰려고 잊어 버린합니다. 이벤트 처리기를 onload로 변경하는 것은 트릭을 만들었습니다. 백만 가지 변형을 시도했지만 모두 HTML의 별도 조각에 이벤트 처리기가있었습니다. 고마워요! – Jingo

관련 문제