03
Май
2020

Не получается смоделировать csrf атаку

У меня есть два домена "http://basic" и "http://test". Я хочу отправить отправить запрос с домена "http://test" на домен "http://basic" с подмененным csrf токеном.

Как это выглядит Шаг 1. На домене "http://basic" в htaccess разрешаю отправку X-CSRF-Token - токенов, разрешаю отправку методом POST, и разрешаю запросы с любых доменов

Header always set Access-Control-Allow-Origin "*"
Header always set Access-Control-Allow-Methods "POST"
Header always set Access-Control-Allow-Headers "X-CSRF-Token"

Далее на домене "http://test" размещаю следующий скрипт:

Шаг 2. Беру токен с домена "http://basic"

<?php
preg_match_all('/name="csrf-token" content="(.*?)"/', file_get_contents("http://basic/web/index.php?r=new/show"), $t);
$token=$t[1][0];
?>

Шаг 3. Отправляю токен на тот же домен "http://basic/"

$.ajax({
    type: "POST",
    url: "http://basic/web/index.php?r=new/post",
    beforeSend: function(xhr){xhr.setRequestHeader('X-CSRF-Token', '<?=$token?>');},
    success: function(data){
        alert( data );
    }
});

Ожидаю ответа от контроллера. Ответ "400 Bad Request".

Что я делаю не так?

Источник: https://ru.stackoverflow.com/questions/1119839/%D0%9D%D0%B5-%D0%BF%D0%BE%D0%BB%D1%83%D1%87%D0%B0%D0%B5%D1%82%D1%81%D1%8F-%D1%81%D0%BC%D0%BE%D0%B4%D0%B5%D0%BB%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D1%82%D1%8C-csrf-%D0%B0%D1%82%D0%B0%D0%BA%D1%83

Тебе может это понравится...

Добавить комментарий