
Analizar documentos OpenAPI en Burp Suite para automatizar evaluaciones de seguridad de APIs basadas en OpenAPI (aprobado por PortSwigger para su inclusión en su tienda oficial BApp Store).
[!UPDATE] Esta extensión ha sido actualizada para usar la última Burp Montoya Java API. La extensión ha sido completamente renovada para mejorar tanto su
UI/UXcomo su rendimiento. Estos cambios aseguran que la extensión sea moderna y optimizada para su uso.
Burp Suite diseñada para pruebas de API basadas en OpenAPILa Especificación
OpenAPI(OAS) define una interfaz estándar, independiente del lenguaje de programación, paraAPIsREST, lo que permite tanto a humanos como a computadoras descubrir y comprender las capacidades de un servicio sin necesidad de acceder al código fuente, documentación adicional o inspeccionar el tráfico de red. Cuando se define correctamente medianteOpenAPI, un consumidor puede entender e interactuar con el servicio remoto con una cantidad mínima de lógica de implementación. Al igual que las descripciones de interfaces han hecho para la programación de bajo nivel, la EspecificaciónOpenAPIelimina las suposiciones al invocar un servicio.Los casos de uso para documentos de definición de
APIlegibles por máquina incluyen, entre otros: documentación interactiva; generación de código para documentación, clientes y servidores; y automatización de casos de prueba. Los documentosOpenAPIdescriben los servicios de unaAPIy se representan en formatosYAMLoJSON. Estos documentos pueden generarse y servirse estáticamente o generarse dinámicamente desde una aplicación.
Realizar evaluaciones de seguridad de APIs basadas en OpenAPI puede ser una tarea tediosa debido a que Burp Suite (estándar de la industria) carece de capacidades nativas de análisis de OpenAPI. Una solución a esta situación es usar herramientas de terceros (por ejemplo, SOAP-UI) o implementar scripts personalizados (a menudo por compromiso) para manejar el análisis de documentos OpenAPI e integrar/encadenar los resultados a Burp Suite para usar sus capacidades de escaneo de primera clase.
openapi-parser es un analizador de OpenAPI que busca simplificar todo este proceso al permitir que los profesionales de seguridad utilicen Burp Suite como una herramienta independiente para la evaluación de seguridad de APIs basadas en OpenAPI.
OpenAPI se pueden analizar desde un archivo suministrado o desde una URL. La extensión puede obtener documentos OpenAPI directamente desde una URL utilizando la función Send to Swagger Parser en el menú contextual Target -> Site map.OpenAPI, anteriormente conocidos como la especificación Swagger, totalmente compatible con las Especificaciones OpenAPI 2.0/3.0 (OAS).Comparer, Intruder, Organizer, Repeater, Scanner, y de Burp.Sistema operativo: Compatible con sistemas operativos Linux, macOS y Windows.
Java Development Kit (JDK): Versión 11 o posterior.
Burp Suite Professional o Community Edition: Versión 2023.11.1.3 o posterior.
[!IMPORTANT] Tenga en cuenta que el uso de cualquier versión inferior a
2023.3.2puede provocar un java.lang.NoSuchMethodError. Es crucial usar la versión especificada o una más reciente para evitar este problema.
Versión 8.5 o posterior (recomendado). El archivo build.gradle se proporciona en el repositorio del proyecto.JAVA_HOME para que apunte al directorio de instalación de JDK.Asegúrese de cumplir con todos los requisitos del sistema, incluida una versión compatible de Burp Suite, antes de compilar y ejecutar el proyecto. Tenga en cuenta que las dependencias externas del proyecto serán gestionadas e instaladas automáticamente por Gradle durante el proceso de compilación. Cumplir con los requisitos ayudará a evitar posibles problemas y reducirá la necesidad de abrir nuevos problemas en el repositorio del proyecto.
Asegúrese de tener Gradle instalado y configurado.
Descargue el repositorio openapi-parser:
git clone https://github.com/aress31/openapi-parser
cd .\openapi-parser\
Compile el jar independiente:
./gradlew fatJar
Burp SuitePara instalar openapi-parser en Burp Suite, primero vaya a la pestaña Extensions y haga clic en el botón Add. Luego, seleccione el archivo openapi-parser-all jar ubicado en la carpeta .\build\libs para cargar la extensión.
Alternativamente, puede omitir el paso de Compilación por completo y descargar la extensión directamente desde BApp Store.
Nota: La versión distribuida en BApp Store podría estar desactualizada con respecto a la versión disponible en este repositorio.
OpenAPI para recopilar todos los parámetros anidados junto con su ejemplo/tipo.MyHttpRequest en lugar de RequestWithMetadata.API directamente desde la GUI.API proporcionadas por el usuario).Consulte TODO para ver tareas adicionales pendientes.
En julio de 2016, después de publicar una solicitud de mejora en el foro de soporte de PortSwigger, decidí tomar la iniciativa e implementar yo mismo una solución.
La extensión aún está en desarrollo; por lo tanto, se agradecen mucho los comentarios, sugerencias y contribuciones.
Si esta extensión le ha ahorrado tiempo y esfuerzo durante una evaluación de seguridad, considere mostrar su apoyo patrocinando una taza de café ☕ para el desarrollador. Después de todo, es el combustible que impulsa el desarrollo. Simplemente presione el brillante botón Sponsor en la parte superior de la página o haga clic aquí para contribuir y mantener el flujo de cafeína. 💸
¿Encontró un error? Bueno, ¡no lo deje corretear! Vamos a aplastarlo juntos como un par de susurradores de errores. 🐛💪
Informe cualquier problema en el rastreador de problemas de GitHub. Juntos, haremos que esta extensión sea tan confiable como una cucaracha que sobrevive a un apocalipsis nuclear. 🚀
¿Quiere causar sensación con sus habilidades de codificación alucinantes? 💻
¡Genial! Las contribuciones son bienvenidas y muy apreciadas. Envíe todas las PRs en el rastreador de solicitudes de extracción de GitHub. Juntos podemos hacer que esta extensión sea aún más increíble. 🚀
Consulte LICENSE.
Site mapScopeOpenAPI Parser)' del editor de mensajes de Burp.API "interesantes" y/o codificarlas con colores para fines de informes.CSV, que permite a los usuarios exportar fácilmente solicitudes API seleccionadas en formato CSV para análisis o informes adicionales.JSON y YAML.Param agregando el tipo de parámetros (por ejemplo, inquery, inbody).