XSS Ajax, вторичная форма не правильно размещена - PullRequest
0 голосов
/ 07 ноября 2018

Я пытаюсь внедрить код на вторую страницу (XSSthissite) после нажатия кнопки на этой пользовательской HTML-странице. Я могу перенаправить на вторую страницу, имея функцию javascript, которая вызывает форму с использованием Ajax. Технически, рассматривая инструменты разработчика, кажется, что POST проходит, однако он не может фактически войти / перенаправить, и поля не кажутся заполненными. В частности, вместо перенаправления 302 POST, которое я получил бы, если данные были отправлены вручную на этой странице, я вижу 200 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 голосов
/ 07 ноября 2018

На вашем submitFormAjax у вас есть эта строка:

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

Эта строка меняет текущий URL вашего сайта на "http://XSSthissite" (http 200), при этом вы обходите привязку функции отправки ко второй кнопке.

Попробуйте отправить информацию без изменения текущего URL, но имейте в виду, что если "http://XSSthissite" не поддерживает CORS, вы не можете выполнить POST из другого источника, это происходит из-за безопасности браузера .

PS: ваша вторая форма находится над тэгом "head", поместите форму в тело в качестве хорошей практики для HTML. Также раздел «скрипт». См .: Почему сценарии в конце тега body

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...