Расширение Burp Suite, предоставляющее полный Montoya API в виде локального REST API с Swagger UI
reburp превращает Burp Suite в нечто, что можно скриптовать. Он загружается как расширение Java и предоставляет
Montoya API
через HTTP REST API на http://127.0.0.1:9090, со спецификацией OpenAPI и Swagger UI. Всё,
что вы обычно кликаете в Burp - чтение истории прокси, отправка запроса, редактирование scope, запуск
сканирования, декодирование токена - становится JSON-вызовом, который может выполнить агент или строка curl.
Он работает в паре с агентом-навыком burp-interaction, чтобы AI-ассистент
мог управлять Burp напрямую.
Возможности Burp, которыми ваш агент теперь может управлять через REST:
Возьмите последний reburp-*.jar из Releases или
соберите его из исходников (требуется Java 17+).
Каждый релиз reburp собирается под минимальную версию Burp Suite (Montoya). На более старой версии Burp возьмите соответствующий jar из Releases.
git clone https://github.com/forefy/reburp.git
cd reburp
./gradlew shadowJar
# Output: build/libs/reburp.jar (plus a versioned copy, reburp-<version>.jar)
Загружайте reburp.jar, а не версионированную копию. Burp перезагружает расширение из того пути,
откуда оно было загружено, а версионированное имя меняется с каждым релизом, поэтому неверсионированное
продолжает перезагружаться после обновления, вместо того чтобы тихо оставить вас на предыдущей сборке.
Если JAVA_HOME не задан, укажите его на ваш JDK:
JAVA_HOME=/path/to/jdk17 ./gradlew shadowJar
build/libs/reburp.jar (или reburp-*.jar, скачанный из Releases)В Burp появится вкладка reburp, показывающая каждый REST-вызов по мере его выполнения.
Каждая строка - это один REST-вызов. При выборе отображаются API-запрос и ответ, а также запрос и ответ, которые reburp отправил цели от вашего имени.
После загрузки откройте в браузере:
Спецификация является источником истины для структур запросов и ответов.
| Группа | Префикс | Основное |
|---|---|---|
| Status | /api/status | Информация о расширении, версия Burp |
| Proxy | /api/proxy/ | История, поиск, аннотирование, переключение перехвата, история WebSocket |
| Site Map | /api/sitemap/ | Список, поиск |
| Scope | /api/scope/ | Проверка URL в scope, добавление/удаление правил scope |
| HTTP | /api/http/ | Отправка HTTP/1.1 и HTTP/2, внедрение auth-токена, разбор, diff, параметры, отражение, точки вставки, cookies |
| Messages | /api/http/message/ | Просмотр и перезапись запросов и ответов: заголовки, параметры, маркеры, MIME-типы, тайминги |
| Scanner | /api/scanner/ | Проблемы, запуск аудита/сканирования, статус задачи (только Pro) |
| Collaborator | /api/collaborator/ | Генерация payload'ов, опрос взаимодействий (только Pro) |
| Repeater / Intruder | /api/repeater/, /api/intruder/ | Отправка запросов в Repeater и Intruder |
| Request Engine | /api/http/engine/ | Высокопроизводительный асинхронный движок запросов: пулы ресурсов, ограничение параллелизма, throttle, повторы, живая статистика, пауза/возобновление/отмена, результаты (Burp 2026.x) |
| Config | /api/config/ | Получение/установка опций проекта и пользователя, состояние движка задач |
| Match & Replace | /api/proxy/match-replace/ | Список, добавление, удаление правил match-and-replace прокси |
| Sessions | /api/sessions/ | Список и удаление правил обработки сессий (в Burp нет действия добавления заголовка) |
| Engagement | /api/engagement/ | Генератор CSRF PoC, обнаружение контента, поиск ссылок, отправка в декодер |
| Bambda | /api/bambda/ | Импорт скриптов Bambda, генерация цепочек фильтров |
| Organizer |
# Is the extension up?
curl -s http://127.0.0.1:9090/api/status
# Last 10 proxy entries
curl -s "http://127.0.0.1:9090/api/proxy/history?limit=10"
# Send a request through Burp
curl -s http://127.0.0.1:9090/api/http/send \
-H 'Content-Type: application/json' \
-d '{"host":"example.com","port":443,"use_https":true,"method":"GET","path":"/"}'
# Add a host to scope
curl -s http://127.0.0.1:9090/api/scope/include \
-H 'Content-Type: application/json' \
-d '{"url":"https://example.com"}'
REST-сервер привязывается только к 127.0.0.1, но порт не аутентифицирован и отвечает на
любой origin. Всё, что может достичь localhost:9090, может управлять Burp, включая веб-страницу,
открытую в вашем браузере. Относитесь к порту как к доверенному только локально и никогда не выставляйте его за пределы loopback.
Из-за этого выполнение команд ОС отключено по умолчанию. /api/utils/shell/execute и
/api/utils/shell/execute-raw возвращают 403, если расширение не видит в окружении собственного процесса Burp:
REBURP_ENABLE_SHELL=1
Если он задан, любой origin, способный достичь порта, получает удалённое выполнение кода на хосте. Включайте это
только если вы это принимаете. Каждый вызов записывается во вкладку вывода расширения.
GET /api/utils/shell/status сообщает, включено ли это, и никогда не требует его включения.
Утверждение о "полном Montoya API" проверяется механически с помощью tools/api_coverage.py,
который CI build workflow запускает при каждом push и завершается ошибкой, если какой-либо отображаемый
метод остаётся нераскрытым. Поведение проверяется отдельно с помощью tools/smoke_test.py на загруженном расширении.
9090. Измените port в BurpRestApiExtension.kt и пересоберите при необходимости.compileOnly - он не включается в сборку; Burp предоставляет его во время выполнения.{ "error": "..." }.OpenApiSpec.kt плюс фрагменты в docs/. Чтобы добавить группу маршрутов,
напишите фрагмент *Paths() и *Schemas() и перечислите его в docs/OpenApiSpecExtra.kt.Issues и pull requests приветствуются. Пожалуйста, запустите python3 tools/api_coverage.py и
./gradlew shadowJar перед открытием PR. Новые группы маршрутов должны поставляться со своим фрагментом OpenAPI,
чтобы документация оставалась полной.
/api/organizer/ |
| Список элементов, отправка запросов в Organizer |
| Issues | /api/issues/ | Создание пользовательских проблем аудита |
| Events | /api/events/ | Включение и выключение пассивных наблюдателей трафика, затем чтение захваченных событий |
| Extension Data | /api/extension-data/ | Типизированное хранилище ключ/значение, хранящееся в файле проекта Burp |
| Preferences | /api/preferences/ | Сохраняемые настройки расширения по типу |
| Logging | /api/logging/ | Запись во вкладки вывода и ошибок расширения и в журнал событий Burp |
| Activity Log | /api/log/ | Запрос собственного сохраняемого журнала вызовов reburp |
| AI | /api/ai/ | Статус и чат Burp AI (где доступно) |
| Meta | /api/meta/ | Компоненты версии Burp, информация о загрузке расширения, словари перечислений |
| Utilities | /api/utils/ | URL encode/decode, base64, хеш, декодирование JWT, случайная строка, декомпрессия |
| Numbers | /api/utils/number/ | Преобразование между двоичной, восьмеричной, десятичной, шестнадцатеричной и произвольными системами счисления |
| JSON | /api/utils/json/ | Валидация, чтение и редактирование по указателю, просмотр структуры, нормализация |
| Bytes | /api/utils/bytes/ | Поиск, срез, добавление, выделение и просмотр байтовых буферов |
| Ranking | /api/utils/rank | Ранжирование истории прокси по аномальности каждого обмена |
| Shell | /api/utils/shell/ | Выполнение команд ОС. Отключено по умолчанию, см. Безопасность |