8.1 KiB
Pentesting de API web
Aprende a hackear AWS desde cero hasta convertirte en un héroe con htARTE (Experto en Equipos Rojos de AWS de HackTricks)!
Otras formas de apoyar a HackTricks:
- Si deseas ver tu empresa anunciada en HackTricks o descargar HackTricks en PDF Consulta los PLANES DE SUSCRIPCIÓN!
- Obtén la merchandising oficial de PEASS & HackTricks
- Descubre La Familia PEASS, nuestra colección exclusiva de NFTs
- Únete al 💬 grupo de Discord o al grupo de telegram o síguenos en Twitter 🐦 @carlospolopm.
- Comparte tus trucos de hacking enviando PRs a HackTricks y HackTricks Cloud repositorios de github.
Utiliza Trickest para construir y automatizar flujos de trabajo fácilmente con las herramientas comunitarias más avanzadas del mundo.
¡Accede hoy mismo:
{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=web-api-pentesting" %}
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
- Servicios Web SOAP/XML: Utiliza el formato WSDL para la documentación, que suele encontrarse en rutas
?wsdl
. Herramientas como SOAPUI y WSDLer (Extensión de Burp Suite) son fundamentales para analizar y generar solicitudes. La documentación de ejemplo está disponible en DNE Online. - APIs REST (JSON): La documentación a menudo se presenta 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ácticas prácticas, que cubre 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 suelen estar restringidas. Las etiquetas CDATA pueden permitir la inserción de payloads si el XML sigue siendo válido.
- Elevación de Privilegios: Prueba los puntos finales con diferentes niveles de privilegio para identificar posibles accesos no autorizados.
- Configuraciones Incorrectas de CORS: Investiga la configuración de CORS para posibles explotaciones a través de ataques CSRF desde sesiones autenticadas.
- Descubrimiento de Puntos Finales: Aprovecha los patrones de la API para descubrir puntos finales ocultos. Herramientas como fuzzers pueden automatizar este proceso.
- Manipulación de Parámetros: Experimenta añadiendo o reemplazando parámetros en las solicitudes para acceder a datos o funcionalidades no autorizados.
- Pruebas de Métodos HTTP: Varía los métodos de solicitud (GET, POST, PUT, DELETE, PATCH) para descubrir comportamientos inesperados o revelaciones de información.
- Manipulación de Tipo de Contenido: 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 cargas JSON o juega con datos XML para inyecciones XXE. También prueba la contaminación de parámetros y caracteres comodín para pruebas más amplias.
- Pruebas de Versiones: Las versiones 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 puntos finales de API. Úsalo para escanear y realizar fuerza bruta en rutas y parámetros contra APIs objetivo.
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
- Herramientas adicionales como automatic-api-attack-tool, Astra y restler-fuzzer ofrecen funcionalidades personalizadas para pruebas de seguridad de API, que van desde la simulación de ataques hasta el fuzzing y escaneo de vulnerabilidades.
- Cherrybomb: Es una herramienta de seguridad de API que audita tu API basándose en un archivo OAS (la herramienta está escrita en rust).
Recursos de Aprendizaje y Práctica
- OWASP API Security Top 10: Lectura esencial para comprender las vulnerabilidades comunes de API (OWASP Top 10).
- API Security Checklist: Una lista de verificación completa para asegurar APIs (enlace de GitHub).
- Filtros Logger++: Para la búsqueda de vulnerabilidades de API, Logger++ ofrece filtros útiles (enlace de GitHub).
- Lista de Endpoints de API: Una lista seleccionada de posibles endpoints de API con fines de prueba (gist de GitHub).
Referencias
Utiliza Trickest para construir y automatizar flujos de trabajo fácilmente con las herramientas comunitarias más avanzadas del mundo.
Obtén acceso hoy:
{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=web-api-pentesting" %}
Aprende hacking en AWS de cero a héroe con htARTE (HackTricks AWS Red Team Expert)!
Otras formas de apoyar a HackTricks:
- Si deseas ver tu empresa anunciada en HackTricks o descargar HackTricks en PDF, consulta los PLANES DE SUSCRIPCIÓN!
- Obtén el oficial PEASS & HackTricks swag
- Descubre The PEASS Family, nuestra colección exclusiva de NFTs
- Únete al 💬 grupo de Discord o al grupo de telegram o síguenos en Twitter 🐦 @carlospolopm.
- Comparte tus trucos de hacking enviando PRs a los repositorios de HackTricks y HackTricks Cloud.