Введение

Каждый раз, когда вы просматриваете веб-сайт и отправляете повторяющиеся запросы в течение короткого промежутка времени, веб-сайт может перестать отвечать или попросить вас ввести капчу, чтобы двигаться дальше. Это известно как «ограничение скорости». Это означает, что веб-сайт ограничивает количество запросов, отправляемых вами или вашим браузером. Это можно сделать для множества вещей, например, для защиты ресурсов приложения и предоставления пользователям хорошего времени отклика на веб-сайте. Давайте обсудим дальше.

Что такое ограничение скорости?

«Ограничение скорости» - это метод, который может помочь ограничить последовательные запросы на сервере. Если администратор сервера реализовал ограничение скорости на сервере, злоумышленник не сможет легко использовать сервер неправильно, так как злоумышленник может попытаться выполнить DOS на сервере, поскольку большое количество последовательных запросов за короткий промежуток времени не принимаются на сервере, это будет защищать от брутфорса, а также от DOS.

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

Пример: предположим, что приложение выполняет аутентификацию на основе одноразового пароля, который отправляется пользователю. OTP состоит из 4 цифр, если на этой конкретной конечной точке не реализовано ограничение скорости, злоумышленник может легко подобрать OTP и войти в учетную запись жертвы.

Использование ограничения скорости:

  1. Снижает нагрузку на сервер, поэтому увеличивает производительность сервера.
  2. Устранение вероятности атаки методом перебора.
  3. Снижает вероятность DOS-атаки на сервер.

Почему они возникают?

  • Каждое приложение имеет функцию входа в систему, и если администратор не реализовал ограничение скорости для этой конкретной конечной точки, злоумышленник может использовать атаку грубой силы, чтобы угадать имя пользователя и пароль пользователей.

Пример: рассмотрим пример, когда на странице входа нет ограничения скорости. По сути, злоумышленник может использовать словарь некоторых распространенных паролей против имени пользователя, чтобы угадать правильный пароль. Если пароль правильный, это может привести к захвату учетной записи.

Обход защиты от ограничения скорости?

Существует множество способов обойти защиту с ограничением скорости, реализованную на веб-сайте. Давай обсудим их.

Используя заголовки в запросе:

Есть пара заголовков, с помощью которых можно обойти ограничение скорости, реализованное на сайте. Поговорим о них: -

X-Forwarded-For: IP:

Этот заголовок используется для идентификации IP-адреса, с которого был сгенерирован запрос. Обычно это добавляется на стороне сервера для сбора IP-адреса пользователя, отправляющего запрос. Это используется для определения IP-адреса пользователя, подключающегося к веб-серверу через прокси-сервер HTTP или балансировщик нагрузки. Поэтому, если вы отправите этот заголовок, манипулируя IP-адресом в значении этого заголовка, веб-сайт будет думать, что множество разных IP-адресов пытается подключиться к серверу. Следовательно, он будет обходить ограничение скорости.

X-Forwarded-For: 127.0.0.1

Вы можете использовать злоумышленника для изменения последнего октета IP-адреса всякий раз, когда запрос отправляется на сервер.

X-Forwarded-Host:

Чтобы понять, какое имя хоста использовалось для подключения к API или веб-серверу. Как и имя хоста, оно отличается в случае обратного прокси-сервера или в случае облачной архитектуры, когда несколько веб-сайтов размещаются на одном физическом сервере. Этот заголовок также помогает сохранить конфиденциальность пользователей. Поэтому, если предоставляется много поддельных имен хостов, это может помочь вам обойти ограничение скорости, реализованное на сервере.

X-Forwarded-For: www.test.com

Примечание. Иногда мы можем использовать эти заголовки два раза, а не один, чтобы обойти ограничение.

Используя какой-либо символ, который может помочь в обходе защиты от ограничения скорости:

  1. Вставка пробела для обхода функции ограничения скорости:

Если злоумышленник хочет обойти защиту от ограничения скорости с панели входа в систему. Он может вставить «Пробел» в конце имени пользователя и пароля.

2. Вставка нулевого байта /% 00 для обхода функции ограничения скорости:

Если злоумышленник хочет обойти ограничение скорости защиты от входа в систему. Он может использовать «нулевой байт» в конце имени пользователя и пароля.

3. Вставка некоторых стандартных символов, таких как% 0d (LF),% 2e,% 20% 09:

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

Используя разные пользовательские агенты, файлы cookie могут помочь обойти защиту, ограничивающую скорость:

Иногда защита с ограничением скорости устанавливается на основе пользовательского агента или cookie. Вы можете манипулировать пользовательским агентом, чтобы сервер или приложение считали, что эти запросы были сделаны из разных браузеров, что также может обойти ограничение скорости.

Путем передачи ограничения, ограничивающего скорость CAPTCHA:

Многие приложения реализуют защиту CAPTCHA, чтобы ограничить количество запросов.

  1. Перехватите соответствующий запрос CAPTCHA и удалите параметр CAPTCHA из запроса.
  2. Не позволяйте капче загружаться, иногда капча загружается как отдельный запрос и назначает значение капчи как сеанс, поэтому, если вы перехватите и отбросите этот запрос, сеанс не будет назначен для проверки капчи, поэтому он может обойти защиту капчи.

IP-ротация с использованием расширения Burp:

В корпоративной версии burp есть функциональность, которую мы можем добавить к расширению. Следовательно, для ротации IP-адреса у нас есть функция IP-Rotation. Это расширение использует шлюз API AWS, и каждый запрос проходит через конечные точки шлюзов API, используя каждый регион и изменяя исходный IP-адрес для каждого целевого запроса. Злоумышленники используют эту функцию для обхода функций ограничения скорости, если это применяется на основе IP-адреса.

Исправление

  • После указанного количества попыток приостановите действие учетной записи пользователя.
  • Примените ограничение скорости на основе IP-адреса и учетной записи. Поэтому, если имя пользователя подвергается переборам, заблокируйте эту учетную запись и IP-адрес.

Заключение

Если мы применим ограничение скорости, это убережет приложение также от брутфорса, а также от различных типов атакующих векторов, таких как DOS. Потому что это может нарушить работу приложения. поэтому всегда важно применять ограничение скорости для приложения.