Web hacking
Cierre del camino Red Team. Todo lo anterior aplicaba a sistemas y redes en general — acá te enfocás específicamente en aplicaciones web, la superficie de ataque más grande y expuesta que existe en internet.
Por qué la web es un mundo aparte
Ya sabés qué es HTTP desde Fundamentos: peticiones y respuestas entre navegador y servidor. Una aplicación web agrega una capa enorme de lógica de negocio sobre ese protocolo simple — formularios, bases de datos, sesiones de usuario, permisos — y cada una de esas piezas es una oportunidad de que algo esté mal implementado.
Si atacar una red es probar las puertas de un edificio, atacar una aplicación web es entrar por la puerta principal, completamente autorizado como visitante, y descubrir que el formulario de recepción no verifica bien lo que escribís — así que en vez de anotar tu nombre, escribís algo que hace que el sistema de recepción te entregue las llaves de todas las oficinas.
El mapa de referencia: OWASP Top 10
OWASP (Open Web Application Security Project) mantiene una lista actualizada de las diez categorías de fallas más críticas y comunes en aplicaciones web, revisada por miles de profesionales en todo el mundo. Es, básicamente, el temario no oficial de todo pentester web — si conocés bien el OWASP Top 10, ya tenés el 80% del mapa mental de esta disciplina.
SQL Injection: el clásico que nunca muere
Una aplicación web casi siempre guarda datos en una base de datos, y le pregunta cosas usando el lenguaje SQL. Cuando un formulario web arma esas preguntas pegando directamente lo que escribiste, sin validar, un atacante puede escribir texto que altera la pregunta original. Eso es SQL Injection.
usuario' OR '1'='1
Si un sistema de login mal hecho arma internamente la consulta como SELECT * FROM usuarios WHERE user='[lo que escribiste]', y vos escribís el texto de arriba, la consulta final se vuelve verdadera para cualquier usuario, no solo el tuyo — potencialmente dejándote entrar sin conocer ninguna contraseña real.
SQL Injection
Manipular consultas a la base de datos insertando código SQL no esperado en un campo de entrada.
XSS (Cross-Site Scripting)
Insertar código JavaScript malicioso que se ejecuta en el navegador de otro usuario que visita la página.
CSRF
Engañar al navegador de una víctima ya autenticada para que ejecute una acción no deseada sin que se dé cuenta.
Broken Access Control
Fallas de permisos: un usuario común accediendo a funciones o datos que deberían ser solo de administrador.
XSS: cuando el navegador de otra persona ejecuta tu código
Si un sitio muestra, sin filtrar, lo que un usuario escribió (por ejemplo, un comentario en un blog), un atacante puede escribir código JavaScript en ese campo. Cuando otra persona visita la página y ve ese comentario, su navegador ejecuta ese código como si fuera parte legítima del sitio — pudiendo robar su sesión, redirigirla a un sitio falso, o algo peor.
Burp Suite: la herramienta central del pentesting web
Burp Suite es a la web lo que Nmap es a las redes: la herramienta imprescindible. Funciona como un proxy — se ubica entre tu navegador y el sitio web, interceptando cada petición y respuesta HTTP para que puedas ver exactamente qué se está enviando, y modificarlo antes de que llegue al servidor.
En tu laboratorio, instalá DVWA (Damn Vulnerable Web Application), una app web armada específicamente con vulnerabilidades intencionales para practicar legalmente.
Configurá el nivel de seguridad de DVWA en "bajo" y andá a la sección de SQL Injection.
En el campo de búsqueda de usuario, probá escribir 1' OR '1'='1 en vez de un ID normal.
Observá qué devuelve la aplicación — si la consulta no está protegida, vas a ver mucha más información de la que un solo ID debería mostrar.
Los ataques web dejan un rastro característico en los logs del servidor: caracteres como comillas simples o etiquetas <script> en campos que deberían tener solo texto normal, o patrones de consultas SQL malformadas. Un WAF (Web Application Firewall) es la herramienta defensiva específica para filtrar este tipo de tráfico antes de que llegue a la aplicación, y va a aparecer de nuevo en el módulo de Hardening del camino Blue Team.
Ponete a prueba
1. ¿Qué es SQL Injection?
2. ¿Qué diferencia principal hay entre SQL Injection y XSS?
3. ¿Qué función cumple Burp Suite?
Con esto cerrás los seis módulos ofensivos: de no saber qué era una red, a poder reconocer, escanear, identificar vulnerabilidades, explotar, moverte dentro de un sistema comprometido, y atacar aplicaciones web. Cuando tu novia te cuente cómo detecta cada una de estas fases desde el lado Blue Team, vas a entender exactamente de qué está hablando.