Web API Pentesting
tip
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Support HackTricks
- Check the subscription plans!
- Join the 💬 Discord group or the telegram group or follow us on Twitter 🐦 @hacktricks_live.
- Share hacking tricks by submitting PRs to the HackTricks and HackTricks Cloud github repos.
Resumen de la Metodología de Pentesting de API
El pentesting de APIs implica un enfoque estructurado para descubrir vulnerabilidades. Esta guía encapsula una metodología integral, enfatizando técnicas y herramientas prácticas.
Comprendiendo los Tipos de API
- SOAP/XML Web Services: Utilizan el formato WSDL para la documentación, que se encuentra típicamente en rutas
?wsdl
. Herramientas como SOAPUI y WSDLer (Extensión de Burp Suite) son instrumentales para analizar y generar solicitudes. La documentación de ejemplo está accesible en DNE Online. - REST APIs (JSON): La documentación a menudo viene en archivos WADL, sin embargo, herramientas como Swagger UI proporcionan una interfaz más amigable para la interacción. Postman es una herramienta valiosa para crear y gestionar solicitudes de ejemplo.
- GraphQL: Un lenguaje de consulta para APIs que ofrece una descripción completa y comprensible de los datos en tu API.
Laboratorios de Práctica
- VAmPI: Una API deliberadamente vulnerable para práctica práctica, cubriendo las 10 principales vulnerabilidades de API de OWASP.
Trucos Efectivos para el Pentesting de API
- Vulnerabilidades SOAP/XML: Explora vulnerabilidades XXE, aunque las declaraciones DTD a menudo están restringidas. Las etiquetas CDATA pueden permitir la inserción de payloads si el XML permanece válido.
- Escalación de Privilegios: Prueba endpoints con diferentes niveles de privilegio para identificar posibilidades de acceso no autorizado.
- Configuraciones Incorrectas de CORS: Investiga la configuración de CORS para potenciales explotaciones a través de ataques CSRF desde sesiones autenticadas.
- Descubrimiento de Endpoints: Aprovecha los patrones de API para descubrir endpoints ocultos. Herramientas como fuzzers pueden automatizar este proceso.
- Manipulación de Parámetros: Experimenta con agregar o reemplazar parámetros en solicitudes para acceder a datos o funcionalidades no autorizadas.
- Pruebas de Métodos HTTP: Varía los métodos de solicitud (GET, POST, PUT, DELETE, PATCH) para descubrir comportamientos inesperados o divulgaciones de información.
- Manipulación del Content-Type: Cambia entre diferentes tipos de contenido (x-www-form-urlencoded, application/xml, application/json) para probar problemas de análisis o vulnerabilidades.
- Técnicas Avanzadas de Parámetros: Prueba con tipos de datos inesperados en payloads JSON o juega con datos XML para inyecciones XXE. También, intenta la contaminación de parámetros y caracteres comodín para pruebas más amplias.
- Pruebas de Versión: Las versiones más antiguas de API pueden ser más susceptibles a ataques. Siempre verifica y prueba contra múltiples versiones de API.
Herramientas y Recursos para el Pentesting de API
- kiterunner: Excelente para descubrir endpoints de API. Úsalo para escanear y forzar rutas y parámetros contra APIs objetivo.
bash
kr scan https://domain.com/api/ -w routes-large.kite -x 20
kr scan https://domain.com/api/ -A=apiroutes-220828 -x 20
kr brute https://domain.com/api/ -A=raft-large-words -x 20 -d=0
kr brute https://domain.com/api/ -w /tmp/lang-english.txt -x 20 -d=0
- https://github.com/BishopFox/sj: sj es una herramienta de línea de comandos diseñada para ayudar con la auditoría de archivos de definición Swagger/OpenAPI expuestos al verificar los puntos finales de la API asociados en busca de autenticación débil. También proporciona plantillas de comandos para pruebas manuales de vulnerabilidades.
- Herramientas adicionales como automatic-api-attack-tool, Astra y restler-fuzzer ofrecen funcionalidades personalizadas para pruebas de seguridad de API, que van desde simulación de ataques hasta fuzzing y escaneo de vulnerabilidades.
- Cherrybomb: Es una herramienta de seguridad de API que audita tu API basada en un archivo OAS (la herramienta está escrita en rust).
Recursos de Aprendizaje y Práctica
- OWASP API Security Top 10: Lectura esencial para entender las vulnerabilidades comunes de API (OWASP Top 10).
- API Security Checklist: Una lista de verificación completa para asegurar APIs (GitHub link).
- Logger++ Filters: Para cazar vulnerabilidades de API, Logger++ ofrece filtros útiles (GitHub link).
- API Endpoints List: Una lista curada de posibles puntos finales de API para fines de prueba (GitHub gist).
Referencias
tip
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Support HackTricks
- Check the subscription plans!
- Join the 💬 Discord group or the telegram group or follow us on Twitter 🐦 @hacktricks_live.
- Share hacking tricks by submitting PRs to the HackTricks and HackTricks Cloud github repos.