170 похожих чатов

@Helgispbru @Dreamer_0x01 @Pathologic93 @webber_12 Не уверен, что вам всем это жутко

интересно, но в продолжение недавнего диалога отправлю свои наброски. Хочу понять, правильно ли я мыслю по спаму.

Отправка форм на сайте-пациенте происходит так:

1. Самой формы в коде страницы нет
2. При загрузке страницы код формы грузится через JS Аяксом по УРИ /ajax/getform
3. По клику на сабмит данные этой формы отправляются Аяксом по УРИ /ajax/sendform
5. Форма содержит CSRF поле

Идёт СПАМ, причем, при смене Аякс УРЛа, СПАМ на длительное время прекращается (например при смене на /ajax/sendform123456).

Из чего я делаю вывод, что спам идет прямыми запросами на эти УРЛ, без эмуляции действий пользователя в браузере.

Как при этом обходят CSRF токен? Прямым запросом на /ajax/getform получают код формы и CSRF токен в ней, а также список полей. Присвоив полям нужные данные, в том числе и CSRF токен, отправляют данные по УРИ /ajax/sendform.

Такая ведь цепочка?

Значит, CSRF токен создается и при прямом запросе, без браузера и кук? Никогда этим не заморачивался, а тут задумался.

13 ответов

71 просмотр

А заголовки проверяете, которые в запросах? Если вы говорите, что там прям прямые запросы, то, наверное, это видно как-то должно быть?

Смари, я как делаю 1) Смотрю реферрер, если нет или иной сайт - нахер 2) Доливаю JSом при отправке еще пару своих заголовков. В идеале, если бы они были рандомные 3) ну там xmlhttprequest само собой но его опять же подделывают 4) и токен, конечно. Но в форме у меня его нету. Он грузится JSом в window.token а потом подсовывается в запрос при отправке форм

Dreamer_0x01 VeseloV
А заголовки проверяете, которые в запросах? Если в...

Вот это дельный коммент. В Ларе оказывается есть ещё доп. токен, который в заголовок можно пихнуть, надо его заюзать. Но я вообще хитрее решил. Я в УРЛ приконкатенатил CSRF токен в качестве суффикса, и теперь у меня форма забирается по УРЛу типа /ajax/getformquUqtVAmLggTGsBthzAxhEL7lbKjUoPCLFgb6ZrG и данные отправляются по такому же. ни один враг не догадается! Теперь им только с эмуляцией браузера меня атаковать остаётся ))

Андрей [aharito] Харитонов
Вот это дельный коммент. В Ларе оказывается есть е...

И такое тоже было. Дисаблил enter и сдвигал кнопку отправки

y s
забавно будет, если враг сидит тут 😁

Тогда новую Яндекс-капчу заюзаю, импортозамещение рекапчи.

Sasha Beep
Смари, я как делаю 1) Смотрю реферрер, если нет ил...

Ого! Ни фига себе система. Если что, заюзаю, если достанут. Пока отстали.

Андрей [aharito] Харитонов
Тогда новую Яндекс-капчу заюзаю, импортозамещение ...

яндекс капча платная. Бесплатная ограниченное время.

Alexander Grishin 🦥
яндекс капча платная. Бесплатная ограниченное врем...

Да? нехорошо. Ну значит будем своими силами бороться.

Alexander Grishin 🦥
токена наверно было б достаточно не?

Неа. У меня вот вместо с кодом формы его скачивают. Но если вот так вот хитро, много ступенчато, как Sasha Beep - то на какое-то время поможет.

Alexander Grishin 🦥
токена наверно было б достаточно не?

Может быть. Но явно не в коде страницы. А проверка на xmlhttprequest это из раннего

Похожие вопросы

Обсуждают сегодня

Ребят в СИ можно реализовать ООП?
Николай
33
~ 2m21s  nix shell github:nixos/nixpkgs#stack ~  stack ghc -- --version error: … while calling the 'derivationStrict' builtin at /builtin/derivation.nix:...
Rebuild your mind.
6
Добрый вечер, Пока не совсем понимаю как наладить общение между телеграм ботом и ПО для работы с сим боксом. По самому боту так понял: - Нужен некий баланс, который можно поп...
Magic
6
Всем доброго вечера. Разрабатываю 32 раз. приложение в Delphi. Столкнулся с тем, что стандартный  TFilestream  не работает с большим файлом > 2 ГБайт (после вызова функции see...
Vadim Gl
16
добрый день. Подскажите, есть сайт на 1.4.7 и я хочу обновиться, особо ничего не меняя. мне выбирать версию 1.4.35 или третью ветку? и можно ли обновлять "как есть", или нужно...
Digital Cat
12
У меня задача: написать брокер сообщений. Очереди и потребители. Очереди поддерживают приоритеты. Очередь отдает сообщения, только обработчикам с соответствующими характеристи...
Aleksandr Filippov
2
народ, плиз хелп, всю голову сломал себе уже... разве может быть так, что GetProcAddress( GetModuleHandle( "kernel32.dll" ), "SetThreadDescription" ) вернёт ненулевое значение...
Iluha Companets
12
Всем привет! Имеется функция: function IsValidChar(ch: UTF8Char): Boolean; var i: Integer; ValidChars: AnsiString; begin ValidChars := 'abcdefghijklmnopqrstuvwxyzABCDE...
Евгений
44
Всем доброго вечера. Разрабатываю 32 раз. приложение в Delphi. Столкнулся с тем, что стандартный TFilestream не работает с большим файлом > 2 ГБайт (после вызова функции see...
Vadim Gl
8
Коллеги, я тут для личных нужд пошел ставить MQTT сервер, пощупал mosquitto, но ужаснулся отсутствию такой банальности, как HTTP API для посмотреть список топиков. А тут что,...
Maksim Lapshin
14
Карта сайта