
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.
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.
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.
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.
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.
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.
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.
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.
frenify: Thank you for your kind words! We’re glad you enjoyed the post. Stay tuned for more content – we’ve got plenty more coming your way.
frenify: I really enjoyed reading this. The content is informative, and the layout makes it so easy to follow. Looking forward to more posts like this! Keep up the great work!