Swurg es una extensión de Burp Suite diseñada para pruebas de OpenAPI.
La especificación OpenAPI (OAS) define una descripción de interfaz estándar e independiente del lenguaje de programación para las API REST, que permite que tanto humanos como computadoras descubran y comprendan las capacidades de un servicio sin necesidad de acceder al código fuente, documentación adicional o inspección del tráfico de red. Cuando se define correctamente a través de OpenAPI, un consumidor puede comprender e interactuar con el servicio remoto con una cantidad mínima de lógica de implementación. De manera similar a lo que han hecho las descripciones de interfaz para la programación de nivel inferior, la especificación OpenAPI elimina las conjeturas al llamar a un servicio.
Los casos de uso para documentos de definición de API legibles 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 documentos OpenAPI describen los servicios de una API y se representan en YAML o JSON. Estos documentos pueden producirse y servirse estáticamente o generarse dinámicamente desde una aplicación.
– Iniciativa OpenAPI
Realizar una evaluación de seguridad de las API 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 utilizar herramientas de terceros (por ejemplo, SOAP-UI
) o para 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.
Swurg es un analizador de OpenAPI que tiene como objetivo optimizar todo este proceso al permitir que los profesionales de la seguridad utilicen Burp Suite como una herramienta independiente para la evaluación de la seguridad de las API basadas en OpenAPI.
- Los documentos de OpenAPI se pueden analizar desde un archivo proporcionado o desde una URL. La extensión puede obtener documentos de OpenAPI directamente desde una URL usando el
Send to Swagger Parser
característica bajo elTarget -> Site map
Menú de contexto. - Analizar documentos de OpenAPI, anteriormente conocido como el
Swagger specification
totalmente compatible con las especificaciones OpenAPI 2.0/3.0 (OAS). - Las solicitudes se pueden ver/editar directamente dentro de la extensión antes de enviarlas a otras herramientas de Burp.
- Las solicitudes pueden enviarse a la
Comparer, Intruder, Repeater, Scanner, Site map and Scope
Herramientas para eructar. - Las solicitudes que coincidan con criterios específicos (detallados en la pestaña ‘Parámetros’) se pueden interceptar para que coincidan y reemplacen automáticamente los valores predeterminados de los parámetros analizados definidos en la pestaña ‘Parámetros’. Esta función permite ajustar las solicitudes antes de enviarlas a otras herramientas de Burp (p. ej., escáner) Las solicitudes editadas se pueden ver en la pestaña ‘Solicitud modificada (OpenAPI Parser)’ del editor de mensajes de Burp.
- Resaltado de filas que permite a los pentesters resaltar llamadas API «interesantes» y/o codificarlas con colores para fines de informes.
- Admite formatos JSON y YAML.
- Instale y configure Gradle (https://gradle.org/) en su sistema.
- Descargar/clonar este repositorio
$ git clonar https://github.com/ares31/swurg
$ cd .\swurg\
Crea el jar independiente:
$ gradle fatJar
Cargando la extensión en Burp Suite
En Burp Suite, bajo el Extender/Options
pestaña, haga clic en el Add
botón y cargar el swurg-all
archivo jar ubicado en el .\build\libs
carpeta.
Alternativamente, ahora puede instalar/cargar directamente esta extensión desde el BApp Store
.
Nota: La versión distribuida en el BApp Store
podría estar detrás de la versión disponible en este repositorio.
- Embellecer la interfaz gráfica de usuario.
- Análisis profundo de los esquemas de OpenAPI para recopilar todos los parámetros anidados junto con su ejemplo/tipo.
- Simplificación/refactorización de código.
- Habilite la edición de celdas para cambiar las llamadas a la API directamente desde la GUI.
- Optimiza aún más el código fuente.
- Implemente soporte para pruebas autenticadas (a través de claves API proporcionadas por el usuario).
- Mejore la columna Param agregando el tipo de parámetros (por ejemplo, inquery, inbody, etc.).
- Implementar las tablas y menús contextuales.
- Aumente la verbosidad de la extensión (a través del panel inferior).