На такое нужно статью писать..
Но увы, сейчас пилю курс. Там будет целый урок про CSRF.
Если кратко, то злоумышленник на каком-либо ресурсе выполняет действия от имени другого пользователя. Ну допустим, это может быть выдача админ. прав на каком-то ресурсе(если пользователь админ). И тут включая социальную инженерию, хакер переманивает этого админа на свой сайт(нужно, конечно, чтобы сам админ, был залогинен на атакуемом ресурсе). Далее, на сайте выполняет какой-либо код, посредством которого посылаются некоторые данные на атакуемый ресурс от имени админа)
Т.е. происходит следующее.
Хакер создает свой сайт --> переманивает на него пользователя --> Некоторый код на сайте выполняется(будь, то отправка сообщения) --> все это отсылается на атакуемый ресурс от имени пользователя.
В основном может быть не понятен момент с выполнением кода на сайте хакера. Вот тут подробнее. Допустим мы хотим сменить пароль у юзверя. Представим, что уязвимый сайт не использует токенов для защиты. Мы знаем, что, например, на атакуемом сайте страница смены пароля
http://example.com/smena_passw
К тому же, для простоты обьяснения представим, что для смены пароля, текущий пароль не требуется
Тогда, на сайте хакера будет следующий код.
HTML:
...
<form action="http://example.com/smena_pass" method=POST>
<input type="hidden" name="send" value="new_pass">
</form>
<script>
submitForm();
</script>
Этот код создает специальную форму для смены пароля, а далее, js код просто отправляет ее. Конечно же, перед проведением атаки, нужно внемательно изучить страницу смены пароля. Потому, именно при изучениивыудили значение name. Это параметр send, который в скором будет обработан на сервере)
А сам код можно прочитать как "На страницу smena_pass, которая находится на ресурсе example.com отправь "new_password" параметром send и выполни отправку без участия пользователя". Т.е. данные отправляются на ресурс практически моментом. Но, пользователь должен быть обязательно авторизован.
Надеюсь, хотябы что-то было понятно..