Введение
Burp Suite — это мощная платформа для тестирования безопасности веб-приложений. Одним из его наиболее универсальных инструментов является Burp Intruder, который позволяет автоматизировать настраиваемые атаки на веб-приложения. Intruder имеет несколько типов атак, каждый из которых предназначен для различных сценариев тестирования.
Тип атаки Pitchfork используется, когда вам нужно одновременно тестировать несколько параметров с различными, но связанными полезными нагрузками (payloads). Он использует отдельный список полезных нагрузок для каждой отмеченной позиции. Во время атаки Intruder берет первую полезную нагрузку из первого списка и сопоставляет ее с первой полезной нагрузкой из второго списка, затем вторую со второй и так далее. Это идеально подходит для тестирования таких вещей, как список известных пар логин/пароль.
В этой лаборатории вы научитесь настраивать и выполнять атаку Pitchfork в Burp Intruder против простой формы входа.
Отправка запроса с двумя параметрами в Intruder
На этом шаге вы запустите Burp Suite, перехватите запрос на вход и отправите его в инструмент Intruder для модификации. Лабораторная среда уже запустила простое веб-приложение для вашего тестирования.
Сначала откройте терминал с рабочего стола и запустите Burp Suite. Обычно его можно найти в меню приложений или запустить из командной строки. Для этой лаборатории мы запустим его из терминала.
burpsuite
В мастере запуска выберите "Temporary project" (Временный проект) и нажмите "Next" (Далее), затем нажмите "Start Burp" (Запустить Burp).
После открытия Burp Suite перейдите на вкладку Proxy (Прокси), а затем на подвкладку Intercept (Перехват). Нажмите кнопку "Open Browser" (Открыть браузер). Это запустит браузер Chromium, предварительно настроенный для работы с прокси Burp.
В браузере Burp перейдите к целевому приложению, введя следующий URL:
http://127.0.0.1:8000
Вы увидите простую форму входа. Вернитесь в окно Burp Suite и отключите перехват, нажав кнопку "Intercept is on" (Перехват включен), чтобы она изменилась на "Intercept is off" (Перехват выключен). Это позволит запросам свободно проходить к приложению.
Теперь вернитесь в браузер. Введите test для имени пользователя и test для пароля, затем нажмите "Submit" (Отправить).
Вернитесь в окно Burp Suite и перейдите на вкладку Proxy > HTTP history (HTTP-история). В списке истории вы должны увидеть запрос POST /login. Щелкните правой кнопкой мыши по этому запросу и выберите "Send to Intruder" (Отправить в Intruder).
Это действие отправит копию запроса в инструмент Intruder, где вы сможете настроить атаку. Вы должны увидеть выделенную вкладку Intruder.
Добавление маркеров полезной нагрузки к обоим параметрам
На этом шаге вы определите позиции в запросе, куда Intruder должен помещать свои полезные нагрузки. Для атаки Pitchfork вам нужно отметить каждое значение параметра, которое вы хотите подвергнуть фаззингу (fuzzing).
Перейдите на вкладку Intruder, а затем на подвкладку Positions. Вы увидите перехваченный запрос POST /login.
Burp Intruder часто автоматически определяет потенциальные позиции для полезных нагрузок и отмечает их символами §. Для этой лаборатории мы хотим точно контролировать позиции. Сначала нажмите кнопку Clear § (Очистить §) справа, чтобы удалить любые маркеры по умолчанию.
Тело запроса в нижней части окна выглядит следующим образом:
username=test&password=test
Мы хотим вставить полезные нагрузки в значения обоих параметров username и password.
- В редакторе запроса выделите значение
testдля параметраusername. - Нажмите кнопку
Add §(Добавить §) справа. Теперь параметр должен выглядеть какusername=§test§. - Далее выделите значение
testдля параметраpassword. - Снова нажмите кнопку
Add §. Теперь параметр должен выглядеть какpassword=§test§.
Теперь тело вашего запроса должно иметь две отмеченные позиции:
username=§test§&password=§test§
Эти маркеры точно указывают Intruder, куда помещать полезные нагрузки из соответствующих наборов полезных нагрузок.
Установка типа атаки 'Pitchfork'
На этом шаге вы выберете тип атаки Pitchfork. Это критически важная настройка, которая включает желаемое нами поведение инъекции парных полезных нагрузок.
Находясь все еще на вкладке Intruder > Positions, найдите выпадающее меню "Attack type" (Тип атаки) в верхней части экрана. По умолчанию оно, скорее всего, установлено на Sniper.
Нажмите на выпадающее меню. Вы увидите четыре опции:
- Sniper: Использует один набор полезных нагрузок и поочередно перебирает каждую позицию.
- Battering ram: Использует один набор полезных нагрузок и одновременно помещает одну и ту же полезную нагрузку во все позиции.
- Pitchfork: Использует несколько наборов полезных нагрузок. Он сопоставляет первую полезную нагрузку из набора 1 с первой из набора 2, вторую со второй и так далее.
- Cluster bomb: Использует несколько наборов полезных нагрузок и тестирует все возможные комбинации полезных нагрузок.
Для нашего сценария тестирования пар "имя пользователя/пароль" Pitchfork является правильным выбором. Выберите Pitchfork из списка.
После выбора Pitchfork вы заметите, что интерфейс на этом экране существенно не изменится, но Burp теперь готов обрабатывать два отдельных списка полезных нагрузок, соответствующих двум маркерам полезных нагрузок, которые вы установили на предыдущем шаге.
Настройка двух отдельных списков полезных нагрузок на вкладке Payloads
На этом шаге вы настроите два списка полезных нагрузок, которые будет использовать атака Pitchfork. Первый список будет содержать имена пользователей, а второй — соответствующие пароли.
Перейдите на подвкладку Payloads на вкладке Intruder.
Поскольку вы выбрали тип атаки Pitchfork и у вас есть две позиции для полезных нагрузок, вы увидите выпадающее меню "Payload set" (Набор полезных нагрузок). Это позволит вам настраивать каждый список полезных нагрузок независимо.
Настройка набора полезных нагрузок 1 (Имена пользователей):
- Убедитесь, что выпадающее меню "Payload set" установлено на
1. - "Payload type" (Тип полезной нагрузки) должен быть "Simple list" (Простой список).
- В разделе "Payload Options" (Параметры полезной нагрузки) ниже нажмите кнопку
Clear(Очистить), чтобы удалить любые элементы по умолчанию. - Нажмите кнопку
Add(Добавить) и введите следующие имена пользователей по одному:userguestadmintest
Настройка набора полезных нагрузок 2 (Пароли):
- Теперь выберите
2из выпадающего меню "Payload set". - Снова убедитесь, что "Payload type" — "Simple list".
- Нажмите кнопку
Clear, чтобы очистить список. - Нажмите кнопку
Addи введите следующие пароли, которые соответствуют именам пользователей из первого списка:userpassguestpassword123test
Теперь вы настроили два отдельных списка полезных нагрузок. Атака Pitchfork будет сопоставлять их по порядку: (user, userpass), (guest, guest), (admin, password123) и (test, test). Общее количество запросов составит 4, что соответствует размеру ваших списков.
Запуск атаки и наблюдение за инъекцией парных полезных нагрузок
На этом заключительном шаге вы запустите атаку и проанализируете результаты, чтобы увидеть атаку Pitchfork в действии.
После настройки типа атаки и полезных нагрузок вы готовы начать. В правом верхнем углу вкладки Intruder нажмите кнопку "Start attack" (Начать атаку).
Откроется новое окно "Intruder attack (1)" (Атака Intruder (1)), отображающее результаты в реальном времени. Изучите таблицу результатов. Вы увидите столбцы "Payload 1" (Полезная нагрузка 1) и "Payload 2" (Полезная нагрузка 2).
Обратите внимание, как полезные нагрузки сопоставлены именно так, как вы их настроили:
- Запрос 1 использует
userиuserpass. - Запрос 2 использует
guestиguest. - Запрос 3 использует
adminиpassword123. - Запрос 4 использует
testиtest.
Теперь посмотрите на столбцы "Status" (Статус) и "Length" (Длина). Большинство запросов, скорее всего, будут иметь одинаковый код состояния (например, 200) и длину ответа, что указывает на неудачную попытку входа. Однако один запрос должен выделяться. Запрос с парой полезных нагрузок admin и password123 является правильным набором учетных данных. Для этого запроса вы должны увидеть другую длину ответа, указывающую на другой ответ сервера (например, сообщение "Login successful!" (Вход выполнен успешно!)).
Пример ожидаемых результатов:
| Request | Payload 1 | Payload 2 | Status | Length |
|---|---|---|---|---|
| 1 | user | userpass | 200 | 450 |
| 2 | guest | guest | 200 | 450 |
| 3 | admin | password123 | 200 | 452 |
| 4 | test | test | 200 | 450 |
Наблюдая эту разницу, вы успешно определили действительные учетные данные с помощью атаки Pitchfork. Теперь вы можете закрыть окно атаки.
Резюме
В этой лабораторной работе вы успешно настроили и выполнили атаку Pitchfork с использованием Burp Intruder.
Вы узнали, как:
- Перехватывать веб-запрос с помощью Burp Proxy и отправлять его в Intruder.
- Вручную устанавливать маркеры полезных нагрузок для нескольких позиций параметров.
- Выбирать тип атаки
Pitchfork, предназначенный для фаззинга связанных, многопараметрических данных. - Настраивать два отдельных и соответствующих списка полезных нагрузок для параметров имени пользователя и пароля.
- Запускать атаку и анализировать результаты для выявления аномалий, успешно находя правильные учетные данные для входа путем наблюдения за инъекцией парных полезных нагрузок.
Атака Pitchfork является ценным методом для тестирования сценариев, где данные в нескольких параметрах связаны, таких как имена пользователей и пароли, или любые другие парные наборы данных.
