
REST/JSON API для инструмента безопасности Burp Suite.
⚠️ ПРЕДУПРЕЖДЕНИЕ: Этот проект больше не поддерживается активно.
Хотя репозиторий останется доступным для ознакомления, дальнейшие обновления, исправления ошибок или поддержка предоставляться не будут.
REST/JSON API для инструмента безопасности Burp Suite.
С момента первого коммита в 2016 году burp-rest-api стал стандартным инструментом для автоматизации веб-сканирования на основе Burp Suite. Многие специалисты по безопасности и организации полагались на это расширение для оркестрации работы Burp Spider и Scanner.
burp-rest-api-2.3.2.jar) со страницы релизовburpsuite_pro.jar из локальной установки Burp SuiteНа Linux, Mac:
java --add-opens=java.desktop/javax.swing=ALL-UNNAMED --add-opens=java.base/java.lang=ALL-UNNAMED -cp "burpsuite_pro.jar:burp-rest-api-2.3.2.jar" org.springframework.boot.loader.launch.JarLauncher
На Windows:
java --add-opens=java.desktop/javax.swing=ALL-UNNAMED --add-opens=java.base/java.lang=ALL-UNNAMED -cp "burpsuite_pro.jar;burp-rest-api-2.3.2.jar" org.springframework.boot.loader.launch.JarLauncher
Важно!!!
burp-rest-api поддерживает как устаревшую версию Burp Suite Professional v1.7, так и более новую Burp Suite Professional v2025.x. Поскольку этот проект основан на Burp Extender API, поведение некоторых функций может незначительно отличаться в зависимости от версии Burp. Например, конфигурация сканера Burp Suite в v2025.x больше не настраивается.
По умолчанию Burp запускается в безголовом режиме с прокси на порту 8080/tcp (только localhost) и REST-эндпоинтом на порту 8090/tcp (только localhost).
Чтобы запустить Burp в режиме UI из командной строки, добавьте следующий аргумент:
--headless.mode=false
Чтобы изменить порт сервера, на котором доступно API, добавьте следующий аргумент:
--server.port=8081
или
--port=8081
Вы также можете изменить адрес сервера, используемый для привязки сетевого адреса:
--server.address=192.168.1.2
или
--address=192.168.1.2
Следующие аргументы командной строки используются только расширением для настройки режима запуска и номера порта.
--burp.jar=<filename.jar> : Динамически загружает JAR Burp и предоставляет его через REST API. Этот флаг работает только на Java <= 1.8! Используйте сценарий burp-rest-api.{sh,bat} для более новых версий Java.
--burp.ext=<filename.{jar,rb,py} : Загружает указанные расширения Burp во время запуска приложения. Этот флаг может повторяться.
--server.port=<port_number> : REST API эндпоинт доступен по указанному номеру порта. --port=<port_number> работает как сокращённый аргумент.
--server.address=<network address> : Сетевой адрес, к которому должен привязываться REST API эндпоинт. --address=<address_ip> работает как сокращённый аргумент.
--apikey=<customApiKey> : Включает аутентификацию по ключу API для защиты эндпоинтов /burp/*. Если customApiKey передан как аргумент, он должен быть включён в каждый HTTP-запрос как дополнительный заголовок: "API-KEY: <customApiKey>".
--headless.mode=<true/false> : При значении false запускает Burp Suite в режиме UI. В противном случае запускает Burp Suite в безголовом режиме. Значение по умолчанию: системное свойство (java.awt.headless)
Аргументы командной строки, переданные исполняемому JAR burp-rest-api, передаются в JAR Burp Suite. Таким образом, можно передавать следующие аргументы командной строки Burp Suite JAR в JAR burp-rest-api для той же функциональности, как если бы они передавались напрямую в Burp Suite JAR.
--project-file=<filename> : Открывает указанный файл проекта данных, используемый для сохранения состояния инструмента. Файл будет создан как новый проект, если его ещё не существует.
--config-file=<filename> : Открывает проект, используя параметры, содержащиеся в выбранном файле конфигурации проекта. Для загрузки нескольких конфигураций проекта этот аргумент можно передавать несколько раз с разными значениями.
--user-config-file=<filename> : Открывает проект, используя параметры, содержащиеся в выбранном файле конфигурации пользователя. Для загрузки нескольких пользовательских конфигураций этот аргумент можно передавать несколько раз с разными значениями.
Более подробную информацию о проектах см. в документации Burp Suite здесь и здесь. О настройках сканера см. раздел «Поддержка и ограничения Burp Suite».
Если JAR burp-rest-api запущен без аргументов --project-file, --config-file или --user-config-file, то Burp Suite запускается с временным файлом проекта и некоторой конфигурацией по умолчанию. Временный файл проекта создаётся при запуске Burp Suite и удаляется в конце сеанса.
Для ознакомления с конфигурацией по умолчанию, используемой для запуска Burp Suite, обратитесь к файлам burp-default-project-options.json и burp-default-user-options.json внутри JAR в папке static.
Swagger используется для определения документации API. После запуска JAR получите доступ к следующим ресурсам для документации API и Swagger UI. Порт 8090 — порт сервера по умолчанию.
API Docs: http://localhost:8090/v3/api-docs
Swagger UI: http://localhost:8090/swagger-ui/index.html#
Этот проект также включает клиент (BurpClient.java), написанный на Java, для использования в других проектах. Обратитесь к файлу интеграционного теста BurpClientIT.java для получения информации об использовании BurpClient.java.
Этот проект изначально был вдохновлён Resty-Burp и разрабатывается в партнёрстве с Doyensec LLC.
Команда проекта burp-rest-api приветствует вклад сообщества. Если вы хотите внести свой код и ещё не подписали соглашение о лицензировании для участников (CLA), наш бот обновит задачу, когда вы откроете Pull Request. По любым вопросам о процессе CLA обращайтесь к нашему FAQ по CLA. Для получения более подробной информации обратитесь к CONTRIBUTING.md и FAQ.md.
Следующий раздел содержит полезную информацию для начала разработки расширения.
lib в каталоге проекта и поместите туда JAR-файл Burp Suite, переименовав его в "burpsuite_pro.jar", чтобы запустить интеграционные тесты # сборка jar
./gradlew clean build
Если вы хотите запустить расширение на новых версиях JVM (JRE > 9), используйте скрипт запуска burp-rest-api-devel.{sh,bat} после копирования burpsuite_pro.jar и burp-rest-api.jar в тот же каталог, что и скрипт.
# На Unix (Linux, macOS)
./burp-rest-api-devel.sh
# На Windows
./burp-rest-api-devel.bat
Copyright (c) 2016 VMware, Inc. Все права защищены. Copyright (c) 2025 Doyensec LLC. Все права защищены.
Распространение и использование в исходном и бинарном виде, с изменениями или без, разрешены при соблюдении следующих условий: при распространении исходного кода должно сохраняться указанное выше уведомление об авторских правах, этот список условий и следующий отказ от ответственности. При распространении в бинарной форме указанное выше уведомление об авторских правах, этот список условий и следующий отказ от ответственности должны воспроизводиться в документации и/или других материалах, поставляемых с распространением.
ЭТО ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ПРЕДОСТАВЛЯЕТСЯ ПРАВООБЛАДАТЕЛЯМИ И УЧАСТНИКАМИ «КАК ЕСТЬ» И ЛЮБЫЕ ЯВНЫЕ ИЛИ ПОДРАЗУМЕВАЕМЫЕ ГАРАНТИИ, ВКЛЮЧАЯ, НО НЕ ОГРАНИЧИВАЯСЬ, ПОДРАЗУМЕВАЕМЫЕ ГАРАНТИИ КОММЕРЧЕСКОЙ ЦЕННОСТИ И ПРИГОДНОСТИ ДЛЯ ОПРЕДЕЛЁННОЙ ЦЕЛИ, ОТКЛОНЯЮТСЯ. НИ ПРИ КАКИХ ОБСТОЯТЕЛЬСТВАХ ПРАВООБЛАДАТЕЛЬ ИЛИ УЧАСТНИКИ НЕ НЕСУТ ОТВЕТСТВЕННОСТИ ЗА ЛЮБЫЕ ПРЯМЫЕ, КОСВЕННЫЕ, СЛУЧАЙНЫЕ, ОСОБЫЕ, ШТРАФНЫЕ ИЛИ ПОСЛЕДУЮЩИЕ УБЫТКИ (ВКЛЮЧАЯ, НО НЕ ОГРАНИЧИВАЯСЬ, ПРИОБРЕТЕНИЕ ЗАМЕНЯЮЩИХ ТОВАРОВ ИЛИ УСЛУГ; ПОТЕРЮ ИСПОЛЬЗОВАНИЯ, ДАННЫХ ИЛИ ПРИБЫЛИ; ИЛИ ПРЕРЫВАНИЕ ДЕЯТЕЛЬНОСТИ) КАК ПО ПРИЧИНЕ, ТАК И ПО ЛЮБОЙ ТЕОРИИ ОТВЕТСТВЕННОСТИ, ВКЛЮЧАЯ ДОГОВОРНУЮ, СТРОГУЮ ОТВЕТСТВЕННОСТЬ ИЛИ ДЕЛИКТНУЮ (ВКЛЮЧАЯ НЕБРЕЖНОСТЬ ИЛИ ИНОЕ), ВОЗНИКШИЕ КАКИМ-ЛИБО ОБРАЗОМ ИЗ-ЗА ИСПОЛЬЗОВАНИЯ ЭТОГО ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ, ДАЖЕ ЕСЛИ БЫЛА СООБЩЕНА ВОЗМОЖНОСТЬ ТАКОГО УЩЕРБА.