Web API Pentesting

Support HackTricks

Use Trickest para construir y automatizar flujos de trabajo fácilmente, impulsados por las herramientas comunitarias más avanzadas del mundo. Obtén acceso hoy:

Resumen de la Metodología de Pentesting de API

Pentesting 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 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 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 cargas útiles si el XML sigue siendo válido.

  • Escalación de Privilegios: Prueba los puntos finales 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 Puntos Finales: Aprovecha los patrones de API para descubrir puntos finales 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 de 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 cargas útiles 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 Versiones: 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 Pentesting de API

  • kiterunner: Excelente para descubrir puntos finales de API. Úsalo para escanear y forzar 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 el 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 buscar vulnerabilidades en API, Logger++ ofrece filtros útiles (GitHub link).

  • API Endpoints List: Una lista curada de posibles endpoints de API para fines de prueba (GitHub gist).

Referencias

Usa Trickest para construir y automatizar flujos de trabajo fácilmente, impulsados por las herramientas comunitarias más avanzadas del mundo. Obtén acceso hoy:

Apoya a HackTricks

Last updated