• XSS.stack #1 – первый литературный журнал от юзеров форума

Статья Методы для обхода ораничений на количество максимально разрешенных запросов к серверу

BlackHawk

SEO expert
Забанен
Регистрация
05.03.2019
Сообщения
126
Реакции
180
Пожалуйста, обратите внимание, что пользователь заблокирован
1586640110415.png


Иногда при разработке highload-продуктов возникает ситуации, когда надо обработать не максимально большое количество запросов, а наоборот — ограничить количество запросов в единицу времени.
Как правило, это используется, например, при проектировании API, так как таким образом разработчики могут защитить систему от случайного или злонамеренного избытка запросов, в результате которого происходит задержка или отказ в обслуживании других клиентов.
Интернет обыватель наверняка уже сталкивался с подобными ограничениями, отправляя заполненные формы на сайте, в процессе:

- регистрации и авторизации
- 2FA и сбросе пароля
- отправке сообщений
- написании комментариев

К примеру, отправив подряд несколько личных сообщений ВКонтакте, вы ударитесь головой о капчу, которую сервис любезно попросит вас ввести, чтобы убедиться, не являетесь ли вы роботом. Это сделано для того, чтобы:

Во-первых: избежать излишнюю нагрузку на сервера (представьте, если несколько тысяч пользователей решат в один момент отправить десятки сообщений).
Во-вторых: избежать атак типа Race Condition, когда злоумышленник намеренно будет использовать отсутствие ограничений в свою пользу (хотя эта уязвимость может быть рассмотрена в отрыве от текущей).

В примере с сообщениями, не будь капчи, кто - то автоматизировал бы этот процесс и реализовал рассылку спама. Теперь давайте перейдем к тому, как обойти возможные блокировки со стороны сервера:
  1. Замена оригинального параметра, указанного в запросе, на схожий.
1586640507296.png

1586640562833.png

Как можно заметить на скриншотах выше, была произведена замена "signup" на "sign-up", но можно также экспериментировать и с регистром.

2. Использование специальных заголовков, таких как:

X-Originating-IP: 127.0.0.1
X-Forwarded-For: 127.0.0.1
X-Remote-IP: 127.0.0.1
X-Remote-Addr: 127.0.0.1


Взгляните на это:

1586640585554.png

1586640620386.png


3. Использование нулевых байтов и CRLF:

%00, %0d%0a, %09, %0C, %20, %0

4. Изменение на каждом запросе юзер-агента, куки и IP-адреса.

Статья доступна в оригинале на английском языке - читать.
Взято с - Cybred - канал об информационной безопасности и конкурентной разведке, вдохновленный идеями олдскульных андеграундных интернет-сообществ о свободе распространения информации в сети и всеобщей взаимопомощи.
 


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх