Помню свой первый день с Burp Suite: два часа убил на то, чтобы понять, почему ни один сайт не открывается после настройки прокси. Оказалось - забыл запустить сам Burp. Звучит тупо, но эту ошибку совершает каждый второй новичок. Собственно, поэтому и написал этот материал: никакой абстрактной теории - только конкретные действия, которые приведут от чистой установки до обнаружения настоящей уязвимости на учебном стенде.
Если хотите начать веб-пентест с нуля, но не знаете, с какой стороны подступиться - читайте дальше.
Что такое Burp Suite и почему именно он
Burp Suite - платформа для тестирования безопасности веб-приложений от компании PortSwigger. Инструмент создал Dafydd Stuttard, взявший себе сетевой псевдоним «PortSwigger» ещё во времена хакерских форумов. Со временем его утилита для перехвата веб-трафика выросла в полноценный набор инструментов, которым пользуются пентестеры по всему миру.Представьте стеклянную трубу между браузером и веб-сервером. Обычно данные просто летят сквозь неё - нажали кнопку, сервер ответил. Burp Suite - как раз такая «стеклянная труба»: прокси-сервер для пентеста, который перехватывает каждый HTTP-запрос и каждый ответ. Вы видите всё, можете остановить любой запрос, поковырять его и отправить дальше.
По сути - MitM-позиция, но технически Burp Suite - forward proxy, настроенный самим пользователем в своём браузере. Это не техника T1557 (Adversary-in-the-Middle), где перехватывают чужой трафик через манипуляцию сетевыми протоколами. Burp - инструментарий пентестера на этапах разведки и тестирования.
Какую версию выбрать
Для обучения пентесту веб-приложений хватит бесплатной Community Edition. Вот что в ней есть:| Возможность | Community (бесплатно) | Professional ($475/год) |
|---|---|---|
| Proxy (перехват трафика) | Да | Да |
| Repeater (ручная отправка запросов) | Да | Да |
| Intruder (перебор) | Замедленный | Полная скорость |
| Scanner (автосканирование) | Нет | Да |
| Сохранение проектов | Нет | Да |
| Collaborator (слепые уязвимости) | Нет | Да |
| Decoder, Comparer, Sequencer | Да | Да |
Community Edition - стартовый набор. Замедленный Intruder раздражает на реальных проектах, но для учёбы - за глаза. Переходите на Pro, когда начнёте участвовать в bug bounty: окупаемость - примерно 1 - 2 успешные находки.
Установка и настройка Burp Suite с нуля
Скачивание и первый запуск
Системные требования скромные: Windows 10+, macOS 10.14+ или любой современный Linux, 4 ГБ RAM (лучше 8), Java встроена в инсталлятор.Пошагово:
- Откройте
Ссылка скрыта от гостей
- Скачайте инсталлятор под свою ОС
- Запустите установщик - права администратора не нужны
- При первом запуске выберите Temporary project и Use Burp defaults
- Нажмите Start Burp
Настройка браузера через FoxyProxy
Можно каждый раз лезть в настройки браузера и вручную менять прокси, но это быстро надоест. Поставьте расширение FoxyProxy - переключение прокси одним кликом.Для Firefox:
- Установите FoxyProxy из каталога дополнений Firefox
- Кликните на иконку FoxyProxy в панели браузера
- Перейдите в Options и нажмите Add
- Заполните поля:
- Title:
Burp Suite - Proxy Type:
HTTP - Proxy IP:
127.0.0.1 - Port:
8080
- Title:
- Сохраните. Теперь одним кликом по иконке FoxyProxy включаете профиль «Burp Suite» - весь трафик пойдёт через перехватчик
Установка CA-сертификата для HTTPS
Без этого шага при попытке открыть любой HTTPS-сайт получите ошибку безопасности. Burp Suite генерирует свой TLS-сертификат, чтобы расшифровывать защищённый трафик, и браузеру нужно сказать, что этому сертификату можно доверять.- Убедитесь, что Burp запущен и прокси включён в браузере
- Перейдите в браузере на
http://burpsuite - Нажмите CA Certificate в правом верхнем углу - скачается файл
cacert.der - В Firefox: Настройки → Приватность и защита → прокрутите до «Сертификаты» → Просмотр сертификатов
- Вкладка Центры сертификации → Импорт → выберите скачанный файл
- Отметьте Доверять при идентификации веб-сайтов → ОК
Ссылка скрыта от гостей
через прокси. Страница загрузилась без предупреждений - сертификат установлен, Burp перехватывает HTTPS-трафик.Именно на этом шаге я когда-то потерял час жизни. Если всё равно видите ошибку - чеклист: а точно ли прокси включён? А точно ли Burp запущен? А может, сертификат импортирован в Chrome, а открываете Firefox? (Классика.)
Интерфейс Burp Suite: что где находится
Не буду описывать каждую кнопку - только то, чем будете пользоваться каждый день.Dashboard - стартовый экран с активными задачами и логами событий.
Target - Site map - карта сайта, которая накапливается по мере того, как вы ходите по страницам. Древовидная структура: домены, пути, запросы и ответы. Ваш радар - показывает, из чего состоит приложение.
Proxy - HTTP history - журнал всех перехваченных запросов. Каждая строка - пара «запрос-ответ». Кликаете на строку - видите полный HTTP-запрос внизу. Здесь вы будете проводить 80% времени.
Proxy - Intercept - режим «стоп-крана». Когда включён, каждый запрос из браузера замирает тут, пока не нажмёте Forward (пропустить) или Drop (выкинуть).
Repeater - ваша лаборатория. Сюда отправляете интересные запросы из HTTP history (правый клик → Send to Repeater). В Repeater можно менять любые параметры запроса и слать его снова и снова, наблюдая за ответом сервера.
Intruder - автоматизация перебора. Выделяете параметр в запросе, подставляете список значений, запускаете - Intruder прогонит все варианты.
Decoder - конвертер кодировок: Base64, URL-encoding, HTML-entities. Нашли непонятную строку в куках - вставляете сюда, декодируете.
Настраиваем Scope - фокусируемся на цели
Этот шаг пропускают почти все новички. В итоге HTTP history заваливается сотнями запросов к Google Analytics, рекламным сетям, CDN - и нужный запрос невозможно найти в этой каше.Scope - фильтр, который говорит Burp: «Записывай и показывай только трафик к этому домену».
- Перейдите в Target - Scope settings (в новых версиях - Target - Scope)
- Нажмите Add в секции «Include in scope»
- Введите URL целевого приложения, например:
http://localhost:8080(если DVWA) илиhttps://0a1b2c3d.web-security-academy.net - Burp спросит: «Отправлять трафик вне скоупа в историю?» - отвечайте No
- Перейдите в Proxy - HTTP history, кликните на фильтр и отметьте Show only in-scope items
Где практиковать веб-пентест с нуля: учебные полигоны
Тестировать чужие сайты без письменного разрешения - это статья УК. Но есть легальные полигоны, созданные специально для обучения.PortSwigger Web Security Academy (
Ссылка скрыта от гостей
) - бесплатная платформа от создателей Burp Suite. Десятки лабораторных работ по каждому типу уязвимости из
Ссылка скрыта от гостей
. Каждая лаборатория - изолированное веб-приложение с конкретной дырой. Я бы порекомендовал начинать именно отсюда.DVWA (Damn Vulnerable Web Application) - локальное приложение с намеренно вшитыми уязвимостями. Запускается через Docker:
Bash:
docker run --rm -it -p 80:80 ghcr.io/digininja/dvwa:latest
http://localhost в браузере (через прокси Burp). Логин по умолчанию: admin / password. Перейдите в DVWA Security и выставьте уровень Low - минимальная защита, идеально для первых экспериментов.WebGoat от OWASP - ещё одна площадка с интерактивными уроками:
Bash:
docker run -p 8888:8080 -p 9090:9090 webgoat/webgoat
Находим первую XSS-уязвимость: практика Burp Suite
Переходим к делу. Разберём пошагово, как найти Reflected XSS на примере DVWA (уровень Low). XSS - одна из самых распространённых уязвимостей из OWASP Top 10, позволяющая внедрить произвольный JavaScript в страницу. Через неё атакующий может красть куки (
Ссылка скрыта от гостей
по MITRE ATT&CK) и перехватывать ввод пользователя (Input Capture, T1056).Шаг 1: Перехватываем нормальный запрос
- В DVWA перейдите на страницу XSS (Reflected)
- В Burp убедитесь, что перехват выключен (Intercept is off) - пусть трафик идёт свободно
- Введите в поле что-нибудь безобидное - например,
testuser- и нажмите Submit - Перейдите в Proxy - HTTP history и найдите GET-запрос вида:
Код:
GET /vulnerabilities/xss_r/?name=testuser HTTP/1.1
- Кликните на него, изучите ответ. Найдите в теле строку:
Hello testuser- сервер подставляет ваш ввод прямо в HTML без какой-либо фильтрации. Уже интересно.
Шаг 2: Отправляем в Repeater и тестируем
- Правый клик на запросе → Send to Repeater
- Перейдите во вкладку Repeater
- Замените
testuserна простейший XSS-пейлоад:
Код:
GET /vulnerabilities/xss_r/?name=<script>alert(1)</script> HTTP/1.1
- Нажмите Send
- В панели ответа ищите строку:
Hello <script>alert(1)</script>
<script> присутствует в ответе без экранирования - уязвимость подтверждена. Браузер выполнит этот скрипт при отображении страницы.Шаг 3: Проверяем в браузере
Вернитесь в браузер и введите в поле:
Код:
<script>alert(1)</script>
Ощущение, когда впервые видишь этот alert - незабываемое. Потренировавшись на кошках, можно двигаться дальше.
SQL injection: поиск уязвимостей через Repeater
Усложняем. SQL-инъекции - техника эксплуатации публично доступных приложений (
Ссылка скрыта от гостей
по MITRE ATT&CK), одна из самых опасных уязвимостей веб-приложений.Работаем с DVWA, страница SQL Injection, уровень Low.
Шаг 1: Изучаем нормальное поведение
- Введите
1в поле User ID и нажмите Submit - В HTTP history найдите запрос:
Код:
GET /vulnerabilities/sqli/?id=1&Submit=Submit HTTP/1.1
- Ответ содержит данные пользователя: First name, Surname. Сервер подставляет значение
idнапрямую в SQL-запрос. Без экранирования. Без параметризации. Красота.
Шаг 2: Тестируем в Repeater
Отправьте запрос в Repeater и попробуйте классический пейлоад:
Код:
GET /vulnerabilities/sqli/?id=1'+OR+'1'%3d'1&Submit=Submit HTTP/1.1
id=1%27+OR+%271%27%3D%271. Если в ответе пришли данные всех пользователей, а не только с id=1 - SQL-инъекция подтверждена. Сервер выполнил:
SQL:
SELECT * FROM users WHERE user_id = '1' OR '1'='1'
'1'='1' всегда истинно, поэтому вернулись все записи.Шаг 3: Определяем структуру и извлекаем данные
Определяем количество столбцов через ORDER BY:
Код:
GET /vulnerabilities/sqli/?id=1' ORDER BY 1--+&Submit=Submit HTTP/1.1
ORDER BY 3 - значит, в запросе 2 столбца. Теперь UNION SELECT:
Код:
GET /vulnerabilities/sqli/?id=' UNION SELECT user,password FROM users--+&Submit=Submit HTTP/1.1
Intruder: автоматизация перебора параметров
Intruder нужен, когда надо прогнать множество значений одного параметра. Перебрать ID пользователей для поиска IDOR-уязвимости, прогнать список типовых XSS-пейлоадов, протестировать параметры.Intruder применяется для разных техник: перебор паролей (Brute Force, T1110), фаззинг параметров при поиске инъекций, перебор идентификаторов для IDOR. В нашем примере перебираем числовые ID - это ближе к этапу Discovery, а не к T1110.
Пошагово на примере перебора User ID в DVWA SQL Injection:
- Перехватите запрос с
id=1в HTTP history - Правый клик → Send to Intruder
- Перейдите во вкладку Intruder - Positions
- Нажмите Clear (убрать автоматически расставленные маркеры)
- Выделите значение
1в параметреid=1и нажмите Add - получитеid=§1§ - Тип атаки оставьте Sniper (один параметр, один список)
- Перейдите на вкладку Payloads
- В Payload type выберите Numbers, диапазон от 1 до 10, шаг 1
- Нажмите Start attack
В Community Edition атака ползёт медленно из-за искусственного ограничения скорости. Для учёбы хватит. Для реальной работы в bug bounty ставьте расширение Turbo Intruder - бесплатное и снимает ограничение.
OWASP Top 10 и инструменты Burp Suite: что для чего использовать
Чтобы практика OWASP Top 10 была системной, вот карта соответствия:| Уязвимость OWASP | Инструмент Burp | Что делать |
|---|---|---|
| A01 Broken Access Control | Repeater | Менять id, роли, токены в запросах |
| A02 Cryptographic Failures | Decoder, Sequencer | Декодировать токены, проверять энтропию |
| A03 Injection (SQLi, XSS) | Repeater, Intruder | Подставлять пейлоады вручную и автоматически |
| A04 Insecure Design | Proxy, Repeater | Анализировать бизнес-логику через модификацию запросов |
| A05 Security Misconfiguration | Proxy (HTTP history) | Искать лишние заголовки, открытые директории |
| A06 Vulnerable Components | Scanner (Pro) | Автосканирование известных CVE |
| A07 Auth Failures | Intruder, Sequencer | Перебор паролей, анализ предсказуемости токенов |
| A08 Data Integrity Failures | Decoder, Repeater | Декодировать и модифицировать JWT, сериализованные объекты |
| A09 Logging Failures | Proxy | Проверять, логируются ли ваши атаки (тестировать мониторинг) |
| A10 SSRF | Repeater, Collaborator (Pro) | Подставлять внешние URL в параметры |
Эта таблица - шпаргалка. Когда берёте лабораторную работу на PortSwigger Web Security Academy, сверяйтесь: какой тип уязвимости, какой инструмент Burp тянуть.
Типичные ошибки новичков и как их избежать
За несколько лет менторства я собрал список граблей, на которые наступает каждый первый. Топ-5:«Сайты не открываются после настройки прокси» - Burp не запущен. Или запущен, но прокси настроен на другой порт. Проверяйте: Burp слушает
127.0.0.1:8080, браузер направлен туда же. Порты должны совпадать.«HTTPS-сайты показывают ошибку сертификата» - не установлен CA-сертификат Burp. Вернитесь к разделу выше. Частая подпроблема: сертификат импортирован в Firefox, а открываете Chrome (или наоборот).
«HTTP history завален мусором» - не настроен Scope. Добавьте целевой домен в Scope и включите фильтр «Show only in-scope items». Без этого искать нужный запрос - как иголку в стоге сена.
«Intercept включён, но ничего не перехватывается» - проверьте, что браузер шлёт запросы через прокси Burp. Откройте любую страницу. Если браузер «завис» - Burp перехватил запрос и ждёт вашего действия. Загляните во вкладку Intercept.
«Intruder работает невыносимо медленно» - ограничение Community Edition. Для учебных задач просто подождите. Для рабочих - ставьте Turbo Intruder через Extender - BApp Store.
Расширения из BApp Store: что поставить сразу
Откройте Extender - BApp Store и установите четыре вещи:- Logger++ - расширенное логирование с фильтрами, удобнее стандартного HTTP history
- Autorize - автоматическая проверка контроля доступа: переключает куки между ролями и показывает, где авторизация дырявая
- JSON Beautifier - форматирует JSON в ответах, делает его читаемым (без него - сплошная каша)
- Turbo Intruder - снимает ограничения скорости Intruder в Community Edition
Что дальше: план развития от новичка до первого баунти
Прошли первые XSS и SQLi на DVWA - вот маршрут дальше:- PortSwigger Web Security Academy - пройдите все бесплатные лабы по SQL injection, XSS и Access Control. Это покроет три самых частых типа уязвимостей
- Подключите сканирование - если есть доступ к Pro, запустите Scanner на учебном стенде и изучите формат отчётов. Сканер автоматизирует поиск уязвимостей - по сути, то же, что делает атакующий на этапе разведки (Vulnerability Scanning, T1595.002 по MITRE ATT&CK), но в контролируемом режиме. Понимание его работы для пентестера обязательно
- Зарегистрируйтесь на HackerOne или Bugcrowd - выберите программу с широким скоупом и низким порогом входа. Начните с информационных уязвимостей: утечка версий, лишние HTTP-заголовки, открытые directory listing
- Изучите Collaborator (Pro) - он позволяет находить слепые уязвимости (blind XSS, blind SSRF, out-of-band SQLi), которые иначе не обнаружить
- Пишите отчёты - навык описания уязвимости не менее ценен, чем навык её поиска. Формат: описание, шаги воспроизведения, impact, рекомендации по исправлению
Последнее редактирование модератором: