Введение
В этой лабораторной работе вы изучите один из типов атак Burp Suite Intruder: Battering Ram. Burp Intruder — это мощный инструмент для автоматизации настраиваемых атак на веб-приложения. Тип атаки Battering Ram специально разработан для ситуаций, когда одну и ту же полезную нагрузку (payload) необходимо вставить в несколько позиций в HTTP-запросе.
Распространенным сценарием использования этой атаки является тестирование форм входа на предмет слабых учетных данных, где имя пользователя и пароль могут быть идентичными (например, admin/admin). В ходе этой лабораторной работы вы научитесь перехватывать запрос на вход, настраивать маркеры полезной нагрузки (payload markers), выбирать тип атаки Battering Ram, настраивать список полезных нагрузок (payload list) и, наконец, запускать атаку для анализа результатов.
К концу этой лабораторной работы вы получите практическое понимание того, как и когда использовать атаку Battering Ram в вашем рабочем процессе тестирования безопасности веб-приложений.
Отправка запроса на вход в Intruder
На этом шаге вы запустите необходимые инструменты и перехватите пример запроса на вход, чтобы отправить его в Burp Intruder для настройки атаки.
Сначала откройте терминал, чтобы запустить Burp Suite. Обычно его можно найти в меню приложений или запустить из командной строки. Для этой лабораторной работы мы предполагаем, что он готов к запуску.
Затем откройте веб-браузер Firefox, предоставленный в лабораторной среде.
Теперь давайте настроим Burp Suite для перехвата веб-трафика.
- В Burp Suite перейдите на вкладку Proxy, а затем на подвкладку Intercept. Убедитесь, что перехват включен (кнопка должна гласить "Intercept is on").
- В Firefox настройте браузер для использования прокси Burp. Перейдите в Настройки (Settings) -> Настройки сети (Network Settings) и установите ручную настройку прокси, используя
127.0.0.1в качестве HTTP-прокси и8080в качестве порта. - В адресной строке Firefox перейдите на страницу входа нашего тестового приложения:
http://127.0.0.1:5000/login. - Введите
testдля имени пользователя иtestдля пароля, затем нажмите кнопку "Login".
Запрос будет перехвачен на вкладке Proxy -> Intercept в Burp Suite. На экране будет отображен необработанный HTTP-запрос.
Наконец, отправьте этот перехваченный запрос в Intruder. Щелкните правой кнопкой мыши в любом месте окна запроса и выберите Send to Intruder из контекстного меню. Вы также можете использовать сочетание клавиш Ctrl+I.
Теперь вы можете перейти на вкладку Intruder, где увидите загруженный запрос, готовый к настройке.
В позициях добавьте маркеры полезной нагрузки (payload markers) к полям имени пользователя и пароля
На этом шаге вы определите позиции в HTTP-запросе, куда Burp Intruder должен помещать свои полезные нагрузки. Для атаки Battering Ram мы отметим поля имени пользователя и пароля.
Перейдите на вкладку Intruder, а затем на подвкладку Positions. Вы увидите запрос, который вы отправили с вкладки Proxy. Burp Suite автоматически добавляет маркеры полезной нагрузки (выделенные символами §) в те части запроса, которые он считает интересными.
Для этой конкретной атаки мы хотим точно контролировать позиции полезной нагрузки.
- Сначала нажмите кнопку Clear § справа. Это удалит все автоматически сгенерированные маркеры полезной нагрузки.
- Теперь найдите строку в теле запроса, содержащую имя пользователя и пароль, которая должна выглядеть примерно так:
username=test&password=test. - Выделите мышью значение
testдля параметраusername. - Нажмите кнопку Add §. Строка теперь должна выглядеть так:
username=§test§&password=test. - Затем выделите значение
testдля параметраpassword. - Снова нажмите кнопку Add §.
После выполнения этих шагов тело вашего запроса будет иметь маркеры полезной нагрузки вокруг значений имени пользователя и пароля, выглядя примерно так:
username=§test§&password=§test§
Эта конфигурация указывает Intruder вставлять полезные нагрузки в эти два конкретных места.
Установите тип атаки 'Battering Ram'
На этом шаге вы выберете подходящий тип атаки для нашего сценария. Burp Intruder предлагает четыре различных типа атак, каждый из которых служит уникальной цели.
- Sniper: Использует один набор полезных нагрузок, нацеливаясь на одну позицию за раз.
- Battering ram: Использует один набор полезных нагрузок, помещая одну и ту же полезную нагрузку во все отмеченные позиции одновременно.
- Pitchfork: Использует несколько наборов полезных нагрузок, помещая одну полезную нагрузку из каждого набора в соответствующие позиции.
- Cluster bomb: Использует несколько наборов полезных нагрузок, тестируя все возможные комбинации полезных нагрузок.
Для нашей цели — проверки, совпадают ли имя пользователя и пароль, — атака Battering ram является идеальным выбором. Она возьмет один список потенциальных учетных данных и попробует использовать каждую из них как для имени пользователя, так и для пароля в одном и том же запросе.
На вкладке Intruder -> Positions найдите выпадающее меню Attack type в верхней части экрана. По умолчанию оно установлено на "Sniper". Щелкните по выпадающему меню и выберите Battering ram.
После выбора Burp Intruder теперь настроен на использование логики атаки Battering Ram.
Настройте простой список полезных нагрузок (например, test, guest)
На этом шаге вы предоставите список полезных нагрузок, которые Intruder будет использовать для атаки. Поскольку мы используем тип атаки Battering Ram, нам нужно настроить только один набор полезных нагрузок.
- Перейдите на вкладку Intruder -> Payloads.
- В разделе "Payload Sets" должно быть указано "Payload set: 1" и "Payload type: Simple list". Это настройки по умолчанию, и они подходят для наших нужд.
- В разделе "Payload Options" ниже есть текстовое поле для добавления ваших полезных нагрузок. Вы можете добавлять полезные нагрузки по одной, вводя их и нажимая кнопку Add, или вы можете вставить список непосредственно в поле.
Для этой лаборатории давайте добавим несколько распространенных учетных данных по умолчанию или слабых. Очистите все существующие полезные нагрузки в списке и добавьте следующие:
testguestadminpassworduser
Ваш список "Payload Options" теперь должен выглядеть так:
test
guest
admin
password
user
При такой конфигурации Intruder будет перебирать этот список. Для каждого элемента он поместит это значение как в поле username, так и в поле password, которые мы отметили на Шаге 2.
Запустите атаку и проанализируйте, как одна и та же полезная нагрузка используется в обеих позициях
На этом заключительном шаге вы запустите атаку и проанализируете результаты, чтобы понять, как работает атака Battering Ram.
- Убедитесь, что все ваши настройки на вкладках Positions и Payloads верны.
- В правом верхнем углу окна Intruder нажмите кнопку Start attack.
Откроется новое окно "Intruder attack", и атака начнется немедленно. Вы увидите таблицу результатов, которая заполняется по мере отправки каждого запроса.
Давайте проанализируем результаты:
- Таблица результатов: Обратите внимание на столбцы "Payload", "Status" и "Length". Столбец "Payload" показывает значение из вашего списка полезных нагрузок, использованное для данного конкретного запроса.
- Вкладки Request/Response: Щелкните по любой строке в таблице результатов (например, по строке с полезной нагрузкой
guest). В нижней части окна вы можете просмотреть Request и Response для этой попытки.- На вкладке Request вы увидите, что полезная нагрузка
guestбыла вставлена как в параметрusername, так и в параметрpassword:username=guest&password=guest. Это подтверждает поведение Battering Ram. - На вкладке Response вы можете увидеть ответ сервера.
- На вкладке Request вы увидите, что полезная нагрузка
Ищите аномалии в результатах. Успешный вход в систему, вероятно, будет иметь другой код состояния или длину ответа. В нашем случае полезная нагрузка test должна привести к успешному входу в систему. Вы можете идентифицировать ее, найдя сообщение "Login successful!" в теле ответа или отсортировав результаты по "Length", чтобы увидеть, какой ответ отличается.
Этот анализ демонстрирует, как атака Battering Ram эффективно тестирует случаи, когда один ввод используется в нескольких параметрах, что является распространенным сценарием при тестировании учетных данных.
Резюме
В этой лаборатории вы успешно настроили и выполнили атаку Battering Ram с использованием Burp Suite Intruder.
Вы узнали, как:
- Захватить HTTP-запрос с помощью Burp Proxy и отправить его в Intruder.
- Очистить маркеры полезных нагрузок по умолчанию и точно определить пользовательские позиции полезных нагрузок.
- Выбрать тип атаки Battering Ram, понимая ее конкретный сценарий использования.
- Настроить простой список полезных нагрузок для атаки.
- Запустить атаку и проанализировать результаты, чтобы подтвердить, что одна и та же полезная нагрузка использовалась во всех указанных позициях для каждого запроса.
Battering Ram является ценным инструментом в арсенале пентестера, особенно для тестирования форм входа и других функций, где одна и та же часть данных может использоваться как несколько параметров. Освоение этой техники повысит эффективность и результативность ваших оценок безопасности веб-приложений.
