Найти тему

Тестирование CSRF (Cross-Site Request Forgery) с помощью Burp Suite

Оглавление

CSRF (Cross-Site Request Forgery) — это тип веб-уязвимости, при котором злоумышленник может заставить пользователя выполнить нежелательные действия на сайте, на котором он аутентифицирован.

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

1. Как происходит CSRF?

CSRF-атака происходит, когда злоумышленник отправляет вредоносный запрос от имени пользователя, который уже авторизован на целевом веб-сайте. Это возможно, потому что сервер не отличает легитимные запросы от поддельных, если они приходят с правильными cookie-файлами и сессиями.

Типичные примеры атак:

  • Изменение пароля пользователя.
  • Выполнение денежных переводов.
  • Изменение профиля пользователя (например, email или телефон).

2. Как работает Burp Suite для тестирования CSRF?

Burp Suite — это мощный инструмент для тестирования безопасности веб-приложений, который включает в себя множество модулей, таких как:

  • Proxy для перехвата и мониторинга трафика.
  • Repeater для повторения и модификации запросов.
  • Intruder для автоматизированных атак.
  • CSRF PoC Generator для создания proof-of-concept (PoC) CSRF-эксплойтов.

2.1. Перехват запросов

Для начала тестирования CSRF необходимо настроить Burp Suite на перехват запросов между клиентом (браузером) и сервером. Это можно сделать следующим образом:

1. Настройка Proxy: Настраиваем браузер на работу с прокси-сервером Burp Suite.

2. Перехват запроса: Включаем перехват в Burp Suite и отправляем целевой запрос (например, изменение пароля или выполнение транзакции).

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

2.2. Проверка на наличие CSRF-защиты

После перехвата запроса следует обратить внимание на следующие моменты:

  • Наличие CSRF-токена: В теле запроса или заголовках должен присутствовать специальный токен (например, csrf_token, authenticity_token и т.д.), который помогает защититься от CSRF-атак.
  • Проверка зависимости запроса от токена: Если токен присутствует, попробуйте удалить его или изменить его значение, чтобы проверить, отклоняет ли сервер запрос в случае неправильного токена.

2.3. Использование Repeater для тестирования

  • Перенесите перехваченный запрос в модуль Repeater.
  • Попробуйте отправить запрос заново без изменений, чтобы убедиться, что он работает корректно.
  • Удалите из запроса CSRF-токен (если он есть) и повторно отправьте запрос. Если сервер принимает запрос без токена или с измененным токеном, это указывает на уязвимость к CSRF.
  • Включите в запросы дополнительные заголовки (Referer, Origin), если они используются для проверки источника запроса, и попробуйте их модифицировать.

2.4. Создание PoC с помощью CSRF PoC Generator

Если уязвимость CSRF обнаружена, Burp Suite может автоматически сгенерировать простую Proof of Concept (PoC) страницу, которая будет использоваться для демонстрации атаки.

1. В модуле Repeater, где вы подтвердили уязвимость, щелкните правой кнопкой мыши на запрос и выберите опцию Engagement Tools > Generate CSRF PoC.

2. В открывшемся окне вы увидите HTML-код страницы, которая отправляет вредоносный запрос от имени пользователя. Этот код можно разместить на внешнем сайте, и если пользователь перейдет на эту страницу, вредоносный запрос будет выполнен.

Пример кода:

<html>
<body>
<form action="http://target_site.com/change_password" method="POST">
<input type="hidden" name="new_password" value="123456" />
<input type="hidden" name="confirm_password" value="123456" />
<input type="submit" value="Submit request" />
</form>
<script>document.forms[0].submit();</script>
</body>
</html>

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

2.5. Дополнительные методы защиты, которые можно проверить

  • Double Submit Cookies: Иногда веб-приложения используют механизм двойной отправки cookie, где CSRF-токен хранится как в cookie, так и в теле запроса. Проверьте, не допускает ли сервер запросы с несовпадающим токеном.
  • SameSite Cookies: Современные браузеры поддерживают атрибут SameSite для cookie, который может ограничить возможность выполнения CSRF-атак. Проверьте, включен ли этот атрибут для чувствительных cookie-файлов (например, сессий).

3. Заключение

Тестирование CSRF с помощью Burp Suite — это важный этап обеспечения безопасности веб-приложений. С его помощью можно не только обнаружить уязвимости, но и создать PoC для демонстрации атаки. Основные шаги по тестированию включают в себя перехват запросов, проверку наличия CSRF-защиты (токенов), а также создание PoC для демонстрации атаки.

Чтобы предотвратить CSRF-атаки, разработчики должны внедрять такие механизмы защиты, как:

  • Генерация уникальных CSRF-токенов для каждого запроса.
  • Использование атрибута SameSite для cookie.
  • Проверка заголовков Referer и Origin.

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

Вместо оглавления. Что вы найдете на канале QA Helper - справочник тестировщика?

Не забудьте подписаться на канал, чтобы не пропустить полезную информацию: QA Helper - справочник тестировщика

Пишите в комментариях какой пункт было бы интересно рассмотреть более подробно.

Обязательно прочитайте: Что должен знать и уметь тестировщик

Также будет интересно почитать: Вопросы которые задают на собеседовании тестировщикам