Metodología para Pentesting Web
Info
En esta sección se trata de describir en profundidad los diferentes tipos de vulnerabilidades y formas de hacer pentesting hacia servicios HTTP/HTTPS en base mi experiencia.
Puertos por defecto: 80 (HTTP), 443(HTTPS)
Resumen de metodología web
Gran parte de lo descrito en esta sección está basada en la metodología OWASP Web Security Testing Guide. Esta metodología se debe aplicar a cada dominio, subdominio o IP dentro del alcance con cliente que cuenten con servicios web.
Simple check list
Lanza escáneres de propósito general. Nunca se sabe si van a encontrar algo o si van a encontrar alguna información interesante.
Comience con las comprobaciones iniciales:
robots.txt
sitemap.xml
Errores 404,403
escaneo de SSL/TLS si es HTTPS
Empezar a hacer un spider y un fuzzeo a la pagina web**:** Es hora de encontrar todos los posibles archivos, carpetas y parámetros que se estén utilizando. Además, comprueba si hay hallazgos especiales.
Para cada directorio o ruta encontrada por fueza bruta o spider se debe aplicar un fuzzeo
Fuerza bruta de directorios: Intenta forzar todas las carpetas descubiertas en busca de nuevos archivos y directorios. (Uso de burpsuite discover content o fuzzing )
Comprobación de copias de seguridad: Comprueba si puedes encontrar copias de seguridad de archivos descubiertos añadiendo extensiones de copia de seguridad comunes.
Fuerza bruta de parámetros
Una vez que haya identificado todos los posibles endpoints que aceptan entradas de usuario, compruebe todo tipo de vulnerabilidades relacionadas con ellos.
Proxys: Hoy en día las aplicaciones web suelen utilizar algún tipo de proxy intermediario, que puede ser (ab)utilizado para explotar vulnerabilidades. Estas vulnerabilidades necesitan un proxy vulnerable para estar en su lugar, pero por lo general también necesitan alguna vulnerabilidad adicional en el backend.
Abusing hop-by-hop headers
Cache Poisoning/Cache Deception
HTTP Request Smuggling
H2C Smuggling
Server Side Inclusion/Edge Side Inclusion
Uncovering Cloudflare
XSLT Server Side Injection
Campos de entrada: La mayoría de las aplicaciones web permitirán a los usuarios introducir algunos datos que serán procesados posteriormente. Dependiendo de la estructura de los datos que el servidor está esperando algunas vulnerabilidades pueden o no aplicarse.
Client Side Template Injection
Command Injection
CRLF
Dangling Markup
File Inclusion/Path Traversal
Open Redirect
Prototype Pollution to XSS
Server Side Inclusion/Edge Side Inclusion
Server Side Request Forgery
Server Side Template Injection
Reverse Tab Nabbing
XSLT Server Side Injection
XSS | XSSI
XS-Search
Última actualización