
Парсинг документов OpenAPI в Burp Suite для автоматизации оценки безопасности API на основе OpenAPI (одобрено PortSwigger для включения в их официальный BApp Store).
[!UPDATE] Это расширение было обновлено для использования последней Burp Montoya Java API. Расширение было полностью переработано для улучшения как
UI/UX, так и производительности. Эти изменения гарантируют, что расширение является современным и оптимизированным для использования.
Burp Suite, предназначенное для тестирования API на основе OpenAPIСпецификация
OpenAPI(OAS) определяет стандартное, не зависящее от языка программирования описание интерфейса дляRESTAPI, которое позволяет как людям, так и компьютерам обнаруживать и понимать возможности сервиса без необходимости доступа к исходному коду, дополнительной документации или анализа сетевого трафика. При правильном определении черезOpenAPIпотребитель может понять и взаимодействовать с удалённым сервисом с минимальным количеством логики реализации. Подобно тому, как описания интерфейсов сделали для низкоуровневого программирования, спецификацияOpenAPIустраняет догадки при вызове сервиса.Варианты использования машиночитаемых документов определения
APIвключают, но не ограничиваются: интерактивная документация; генерация кода для документации, клиентов и серверов; автоматизация тестовых сценариев. ДокументыOpenAPIописывают сервисыAPIи представляются в форматахYAMLилиJSON. Эти документы могут быть созданы и предоставляться статически или генерироваться динамически из приложения.
Выполнение оценки безопасности API на основе OpenAPI может быть утомительной задачей, поскольку Burp Suite (отраслевой стандарт) не имеет встроенных возможностей парсинга OpenAPI. Решением этой ситуации является использование сторонних инструментов (например, SOAP-UI) или реализация пользовательских скриптов (часто для каждого проекта) для обработки парсинга документов OpenAPI и интеграции/передачи результатов в Burp Suite для использования его первоклассных возможностей сканирования.
openapi-parser — это парсер OpenAPI, который направлен на оптимизацию всего этого процесса, позволяя специалистам по безопасности использовать Burp Suite как самостоятельный инструмент для оценки безопасности API на основе OpenAPI.
OpenAPI могут быть проанализированы либо из предоставленного файла, либо из URL. Расширение может получать документы OpenAPI напрямую из URL с помощью функции Send to Swagger Parser в контекстном меню Target -> Site map.OpenAPI, ранее известных как Swagger specification, полностью соответствующих спецификациям OpenAPI 2.0/3.0 (OAS).Comparer, Intruder, Organizer, Repeater, Scanner, и Burp.Операционная система: совместимо с операционными системами Linux, macOS и Windows.
Java Development Kit (JDK): версия 11 или новее.
Burp Suite Professional или Community Edition: версия 2023.11.1.3 или новее.
[!IMPORTANT] Обратите внимание, что использование любой версии ниже
2023.3.2может привести к ошибке java.lang.NoSuchMethodError. Крайне важно использовать указанную версию или более новую, чтобы избежать этой проблемы.
8.5 или новее (рекомендуется). Файл build.gradle предоставлен в репозитории проекта.JAVA_HOME, указывающую на каталог установки JDK.Пожалуйста, убедитесь, что все системные требования, включая совместимую версию Burp Suite, выполнены перед сборкой и запуском проекта. Обратите внимание, что внешние зависимости проекта будут автоматически управляться и устанавливаться с помощью Gradle в процессе сборки. Соблюдение требований поможет избежать потенциальных проблем и сократит необходимость открытия новых вопросов в репозитории проекта.
Убедитесь, что у вас установлен и настроен Gradle.
Загрузите репозиторий openapi-parser:
git clone https://github.com/aress31/openapi-parser
cd .\openapi-parser\
Соберите автономный jar:
./gradlew fatJar
Burp SuiteЧтобы установить openapi-parser в Burp Suite, сначала перейдите на вкладку Extensions и нажмите кнопку Add. Затем выберите файл openapi-parser-all jar, расположенный в папке .\build\libs, для загрузки расширения.
Кроме того, вы можете полностью пропустить шаг Компиляция и загрузить расширение напрямую из BApp Store.
Примечание: версия, распространяемая в BApp Store, может отставать от версии, доступной в этом репозитории.
OpenAPI для сбора всех вложенных параметров вместе с их примерами/типами.MyHttpRequest вместо RequestWithMetadata.API непосредственно из GUI.API, предоставленных пользователем).См. TODO для дополнительных невыполненных задач.
В июле 2016 года, после публикации запроса на улучшение на форуме поддержки PortSwigger, я решил взять инициативу и реализовать решение самостоятельно.
Расширение находится в стадии разработки, поэтому отзывы, комментарии и вклад очень ценятся.
Если это расширение сэкономило вам время и избавило от хлопот во время оценки безопасности, подумайте о том, чтобы поддержать разработчика чашечкой кофе ☕. В конце концов, это топливо, которое двигает разработку. Просто нажмите на блестящую кнопку Sponsor в верхней части страницы или нажмите здесь, чтобы внести свой вклад и поддерживать поток кофеина. 💸
Нашли ошибку? Не дайте ей расползтись! Давайте раздавим её вместе, как два шептуна ошибок! 🐛💪
Пожалуйста, сообщайте о любых проблемах в трекере проблем GitHub. Вместе мы сделаем это расширение таким же надёжным, как таракан, переживший ядерный апокалипсис! 🚀
Хотите произвести фурор своими безумными навыками программирования? 💻
Отлично! Вклад приветствуется и высоко ценится. Пожалуйста, отправляйте все PR в трекере запросов на слияние GitHub. Вместе мы сможем сделать это расширение ещё более потрясающим! 🚀
См. LICENSE.
Site mapScopeOpenAPI Parser)' редактора сообщений Burp.API и/или кодировать их цветом для целей отчётности.CSV, позволяющую пользователям легко экспортировать выбранные запросы API в формате CSV для дальнейшего анализа или отчётности.JSON и YAML.Param, добавив типы параметров (например, inquery, inbody).