Web Application Penetration Testing Checklist

El pentesting de aplicaciones web consiste en identificar, analizar y reportar vulnerabilidades que pueden poner en riesgo la confidencialidad, integridad o disponibilidad de los sistemas. Entre los riesgos más comunes se encuentran la ejecución de código, la inyección de comandos, el bypass de autenticación, las inyecciones SQL, los ataques CSRF, y las inyecciones de scripts (XSS).

Realizar un pentest web de forma sistemática permite anticipar amenazas reales y corregir fallos antes de que sean explotados. Les presentamos un cheat sheet con cada etapa clave, técnicas recomendadas y herramientas que nos ayudarán a realizar pruebas exhaustivas.

Recolección de Información

La primera fase es obtener la mayor cantidad de datos sobre la aplicación y su infraestructura:

  • Revisar robots.txt: usa wget para descargarlo y descubrir rutas excluidas.

  • Identificar software y versiones: observa mensajes de error, cabeceras HTTP y páginas inválidas.

  • Consultar DNS: aplica consultas inversas, zone transfers y búsquedas en bases públicas.

  • Enumerar directorios y URLs: mediante nmap, dirb, nikto o nessus.

  • Mapear puntos de entrada: herramientas como Burp Suite, OWASP ZAP y Webscarab te permiten interceptar peticiones.

  • Fingerprinting de servicios: nmap y amap ayudan a identificar tecnologías subyacentes.

  • Probar extensiones comunes: solicita rutas con .asp, .php, .html para detectar configuraciones por defecto.

  • Revisar código fuente accesible: examina comentarios y scripts expuestos en las páginas públicas.

Una recolección minuciosa facilita detectar vectores de ataque y planificar los siguientes pasos.

Pruebas de Autenticación

El objetivo es evaluar si los mecanismos de login son robustos y no permiten acceso indebido:

  • Verifica si la sesión persiste después de cerrar sesión o tras un tiempo de inactividad.

  • Comprueba si datos sensibles quedan en caché del navegador.

  • Prueba la recuperación de contraseñas con ingeniería social o respuestas predecibles.

  • Examina si el formulario guarda contraseñas en campos ocultos (“Remember me”).

  • Comprueba si dispositivos hardware se comunican por canales adicionales inseguros.

  • Valida la efectividad de CAPTCHAs.

  • Identifica preguntas de seguridad débiles.

  • Ten presente que una inyección SQL aquí puede exponer datos críticos. Contar con un WAF ayuda a filtrar consultas maliciosas.

Pruebas de Autorización

Se trata de comprobar que los usuarios sólo acceden a recursos permitidos:

  • Manipula roles o privilegios para acceder a datos de otros usuarios.

  • Lanza ataques de path traversal (../) para acceder a rutas restringidas.

  • Modifica cookies y parámetros con Burp o ZAP.

  • Prueba peticiones HTTP alteradas para comprobar si se obtiene acceso no autorizado.

Pruebas de Gestión de Configuración

Una configuración deficiente expone información sensible:

  • Enumera directorios y revisa documentación antigua, respaldos y archivos olvidados.

  • Analiza banners de servidor y servicios expuestos.

  • Identifica puertos y servicios SSL/TLS activos con nmap y nessus.

  • Revisa métodos HTTP habilitados (OPTIONS, TRACE) mediante telnet o netcat.

  • Realiza pruebas XST (Cross Site Tracing) y revisa códigos de error.

  • Comprueba configuraciones por defecto en archivos de log y plantillas de error.

Pruebas de Gestión de Sesión

Aquí se valida la seguridad de tokens y cookies:

  • Revisa URLs restringidas en busca de CSRF.

  • Analiza el uso de tokens en GET y POST.

  • Recolecta varias muestras de cookies y estudia su algoritmo.

  • Usa proxies de interceptación como Burp para alterar atributos de sesión.

  • Prueba ataques de session fixation.

Validación de Datos

La falta de validación robusta permite inyecciones peligrosas:

  • Revisa el código JavaScript para errores de validación.

  • Prueba inyecciones SQL (union, boolean, time-based) con sqlmap, sqlninja o sql power injector.

  • Busca XSS almacenado y reflejado.

  • Realiza inyecciones LDAP, IMAP/SMTP, XPATH y XML.

  • Prueba code injection para ejecutar comandos arbitrarios.

  • Haz pruebas de buffer overflow.

  • Lanza ataques de HTTP request smuggling y splitting.

Pruebas de Denegación de Servicio

Evalúa la resistencia frente a ataques de saturación:

  • Envía gran volumen de solicitudes que disparen operaciones pesadas.

  • Analiza el código fuente buscando entradas que consuman muchos recursos.

  • Realiza ataques con comodines SQL.

  • Comprueba si el usuario puede crear objetos sin límite.

  • Envía entradas extremadamente grandes y observa la respuesta del servidor.

  • Automatiza envío de valores enormes para llenar logs o memoria.

El pentesting de aplicaciones web es mucho más que ejecutar escáneres automáticos. Requiere planificación metódica, revisión manual y el uso combinado de herramientas. Este checklist nos ayudará a estructurar nuestras pruebas de manera completa y repetible.

Recuerdemos que un análisis serio no sólo detecta vulnerabilidades, sino que aporta contexto y recomendaciones claras para mitigarlas. La seguridad es un proceso continuo, no un estado estático.

Si queremos profundizar, nos tenemos que familiarizar con OWASP Testing Guide.

Loading Next Post...
Follow
Search Trending
Popular Now
Loading

Signing-in 3 seconds...

Signing-up 3 seconds...

Cart
Cart updating

ShopYour cart is currently is empty. You could visit our shop and start shopping.