Генерация CSRF PoC в Burp Suite

Beginner
Практиковаться сейчас

Введение

В этой лабораторной работе вы изучите фундаментальный метод тестирования безопасности веб-приложений: генерацию Proof of Concept (PoC) для межсайтовой подделки запроса (Cross-Site Request Forgery, CSRF) с использованием Burp Suite. CSRF — это тип атаки, который обманом заставляет жертву отправить вредоносный запрос. Burp Suite предоставляет мощную функцию для автоматического создания PoC, который можно использовать для демонстрации воздействия уязвимости.

Вы будете использовать прокси Burp Suite для перехвата запроса, который изменяет состояние приложения (например, обновление адреса электронной почты), а затем воспользуетесь его "Engagement tools" для генерации HTML-формы, воспроизводящей этот запрос. Это практическое упражнение укрепит ваше понимание того, как создаются и тестируются CSRF-атаки.

Поиск запроса, изменяющего состояние (например, обновление электронной почты) в истории прокси

На этом шаге вы запустите Burp Suite, используете его встроенный браузер для выполнения действия на целевом веб-сайте, а затем найдете соответствующий запрос в истории прокси. "Запрос, изменяющий состояние" — это любой запрос, который модифицирует данные на сервере, например, изменение пароля, отправка комментария или обновление информации профиля.

Сначала запустим Burp Suite.

  1. Нажмите на меню Applications в верхнем левом углу экрана.
  2. Перейдите в Web и выберите Burp Suite Community Edition.
  3. Появится диалоговое окно. Оставьте настройки по умолчанию (Temporary project) и нажмите Next.
  4. На следующем экране выберите Use Burp defaults и нажмите Start Burp.

После запуска Burp Suite откройте его встроенный браузер.

  1. Перейдите на вкладку Proxy, а затем на подвкладку Intercept.
  2. Нажмите кнопку Open Browser. Откроется новое окно браузера Chromium, предварительно настроенное для перенаправления трафика через Burp Suite.

Теперь выполним действие для перехвата. Для этой лабораторной работы мы будем использовать тестовый веб-сайт от PortSwigger.

  1. В браузере Burp перейдите по следующему URL:
    https://portswigger.net/web-security/csrf/lab-no-defenses
    
  2. Нажмите Access the lab. Вас перенаправит на веб-сайт блога.
  3. Войдите в приложение, используя учетные данные wiener:peter. Эти учетные данные можно найти в описании лабораторной работы на странице.
  4. После входа вы увидите форму "Update email" (Обновить электронную почту). Введите новый адрес электронной почты, например, test@example.com, и нажмите Update email.

Наконец, найдем запрос в Burp Suite.

  1. Вернитесь в окно Burp Suite.
  2. Перейдите на вкладку Proxy, а затем на подвкладку HTTP history.
  3. Просмотрите список запросов. Вы должны увидеть запрос POST /my-account/change-email. Это запрос, изменяющий состояние, который мы хотим отследить. Щелкните по нему, чтобы просмотреть его детали в панели ниже.
POST /my-account/change-email HTTP/2
Host: your-lab-id.web-security-academy.net
...

email=test%40example.com

Теперь вы успешно перехватили и идентифицировали запрос, изменяющий состояние.

Щелкните правой кнопкой мыши по запросу

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

Пока запрос POST /my-account/change-email выделен на вкладке Proxy > HTTP history, выполните следующее действие:

  1. Наведите курсор мыши на строку выбранного запроса.
  2. Щелкните правой кнопкой мыши по запросу.

Это откроет большое контекстное меню с множеством опций. Это меню чувствительно к контексту, что означает, что доступные опции могут меняться в зависимости от того, где вы щелкнули. Щелкнув правой кнопкой мыши по запросу, вы получите список действий, которые можно выполнить с этим конкретным запросом, например, отправить его в другие инструменты Burp, такие как Repeater, Intruder или, в нашем случае, генератор CSRF PoC.

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

Перейдите в Engagement tools > Generate CSRF PoC

На этом шаге вы пройдете по контекстному меню, чтобы найти и запустить генератор CSRF PoC. Этот инструмент относится к категории "Engagement tools" (Инструменты для взаимодействия), которые предназначены для демонстрации и отчетности по уязвимостям.

После щелчка правой кнопкой мыши по запросу на предыдущем шаге контекстное меню теперь видимо. Выполните следующие шаги для генерации PoC:

  1. В контекстном меню найдите и наведите курсор мыши на опцию Engagement tools. Это откроет подменю.
  2. В появившемся подменю нажмите Generate CSRF PoC.

Откроется новое окно с заголовком "Generate CSRF PoC". Burp Suite автоматически проанализировал выбранный вами запрос POST и сгенерировал простую HTML-страницу, которая при отправке повторит тот же запрос. Это основа CSRF-атаки: обман браузера пользователя с целью отправки запроса на веб-сайт, где он уже аутентифицирован.

Просмотрите сгенерированную HTML-форму

На этом шаге вы изучите HTML-код, сгенерированный Burp Suite. Понимание этого кода имеет решающее значение для понимания того, как работает CSRF-атака.

В окне "Generate CSRF PoC" вы увидите блок HTML-кода. Он должен выглядеть примерно так:

<html>
  <!-- CSRF PoC - generated by Burp Suite Professional -->
  <body>
    <script>
      history.pushState("", "", "/");
    </script>
    <form
      action="https://your-lab-id.web-security-academy.net/my-account/change-email"
      method="POST"
    >
      <input type="hidden" name="email" value="test&#64;example&#46;com" />
      <input type="submit" value="Submit request" />
    </form>
  </body>
</html>

Давайте разберем ключевые компоненты этого HTML:

  • <form action="..." method="POST">: Определяет HTML-форму. Атрибут action указывает URL, на который будут отправлены данные формы — в данном случае, тот же конечный пункт, который использовался для изменения адреса электронной почты. method="POST" соответствует методу исходного запроса.
  • <input type="hidden" name="email" value="...">: Это скрытое поле формы. Оно содержит параметр, необходимый серверу для выполнения действия. Здесь это параметр email со значением test@example.com. Поскольку оно скрыто, жертва, посетившая эту страницу, не увидит его.
  • <input type="submit" value="Submit request" />: Создает кнопку, которую жертва должна нажать, чтобы инициировать атаку. В более продвинутых атаках эта отправка может быть инициирована автоматически с помощью JavaScript.

Эта простая HTML-страница является функциональным доказательством концепции (Proof of Concept) уязвимости CSRF.

Используйте функцию 'Test in browser' для проверки PoC

На этом шаге вы используете сгенерированный PoC для подтверждения уязвимости CSRF. Burp Suite упрощает это с помощью встроенной функции тестирования.

В окне "Generate CSRF PoC" вы найдете кнопку с надписью Test in browser. Эта функция позволяет тестировать PoC непосредственно в той же браузерной сессии, где вы аутентифицированы в целевом приложении.

  1. Нажмите кнопку Test in browser.
  2. Burp Suite предоставит вам уникальный URL. Нажмите кнопку Copy, чтобы скопировать этот URL в буфер обмена.
  3. Вернитесь во встроенный браузер Burp (окно Chromium).
  4. Вставьте скопированный URL в адресную строку и нажмите Enter.

Загрузится новая страница, на которой будет отображаться только кнопка "Submit request". Это ваш PoC в действии.

  1. Нажмите кнопку Submit request.

Браузер отправит запрос POST в веб-приложение. Поскольку вы уже вошли в систему (ваш браузер имеет сессионный cookie), приложение обработает запрос так, как если бы вы сделали его легитимно.

Чтобы подтвердить успешность атаки:

  1. Вернитесь на вкладку с приложением блога.
  2. Обновите страницу или нажмите на ссылку "My account".
  3. Вы должны увидеть, что адрес электронной почты был изменен на test@example.com (или любое другое значение, которое было в вашем PoC). В лаборатории также должно появиться сообщение "Congratulations, you solved the lab!".

Это подтверждает, что CSRF PoC работает и приложение уязвимо.

Итоги

В этой лаборатории вы успешно научились использовать Burp Suite для генерации и тестирования Proof of Concept (PoC) для атаки Cross-Site Request Forgery (CSRF).

Вы отработали полный рабочий процесс для этой задачи:

  1. Перехват запроса, изменяющего состояние, с помощью прокси Burp.
  2. Использование контекстного меню для доступа к Engagement tools.
  3. Генерация CSRF PoC одним кликом.
  4. Анализ полученного HTML для понимания механизма атаки.
  5. Тестирование PoC в браузере для подтверждения уязвимости.

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