Привет! Если ты думаешь, что знаешь всё о Burp Suite, я тебя удивлю! Этот мощный инструмент для тестирования веб-приложений скрывает в себе ещё больше возможностей, способных значительно упростить и ускорить работу. Сегодня мы изучим функционал макросов на практике и увидим, как они могут стать надежным помощником в процессе тестирования и анализа веб-приложений.

Немножко вводной информации

P.S. Доступно в Pro версии*

Совсем недавно я решал лабораторную работу "Обход 2FA с помощью грубой силы" на PortSwigger'e, где было необходимо перед каждым запросом обновлять CSRF-Token. Безусловно, можно реализовать скрипт, который перед каждой итерацией будет делать GET запрос к нужной странице и парсить токен, например:

def get_csrf_token(text):
    soup = BeautifulSoup(text, 'html.parser')
    return soup.find('input', attrs={'name': 'csrf'})['value']

Но другим более элегантным вариантом является использование макросов.

Разбираем на практике

Итак, давайте посмотрим на описание задания:

Тут понятно. Рассмотрим логику работы авторизации.

GET /login -> POST /login -> GET /login2 -> POST /login2

Стоить отметить, что при двух неудачных попытках ввода проверочного кода, нас редиректит на /login. Также важно учесть, что мы используем "одноразовый" CSRF токен перед каждым POST запросом, который получаем в ответе от сервера на GET /login и GET /login2:

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

Для этого перейдем в Project options -> Sessions -> Session Handling Rules -> Add

Сразу выберем скоуп:

Теперь создадим новое правило "Run a macro"

Создадим макро, нажав на "Add"

В данном окне выбираем необходимую последовательность запросов. В нашем случае,- это GET /login POST /login GET /login2

На всякий случай, лучше убедиться, что всё работает, нажав на кнопку "Test macro"

Как видим, макрос успешно создан:

Теперь перейдем в Intruder и настроим его нужным образом

И запустим:

Бинго! Мы смогли автоматизировать достаточно нудный процесс. Стоит учитывать, что в данном примере, данный способ требует "4 запроса на 1 запрос", что значительно тормозит скорость выполнения задачи. В любом случае, данный функционал является очень удобным и полезным для автоматизации некоторых процессов. Удачи!

P.S. Когда узнал, что Burp так умеет, очень удивился и решил поделиться с народом. Может, кто-то тоже не знал :)

Комментарии (0)