Muéstrame cómo combinarías fallos web comunes —digamos inyección SQL y XSS— para lograr un impacto que vaya más allá de un único hallazgo.
Respuesta breve
Por separado, la SQLi expone o modifica datos y puede llegar al RCE; la XSS almacenada secuestra sesiones en el navegador de las víctimas. Encadenadas, puedes usar la SQLi para plantar una carga XSS almacenada que se dispara en la sesión de un admin, robar su sesión y escalar al control total de la aplicación.
Un buen pentester web piensa en cadenas de ataque, no en listas de verificación. Un escáner reporta «XSS reflejada, media» y «SQLi, alta» como dos filas. Un tester muestra cómo, juntas, se convierten en «toma de control total del admin, crítica». Esa narrativa es lo que impulsa la remediación.
Qué te da cada fallo por sí solo
- La inyección SQL te permite leer, modificar o eliminar datos en los que la aplicación confía. Según la base de datos y los privilegios, puede escalar aún más: volcar hashes de contraseñas, leer archivos (
LOAD_FILE), escribir un web shell, o incluso un RCE mediante funciones comoxp_cmdshell(MSSQL) o consultas apiladas. - El cross-site scripting, especialmente la XSS almacenada, ejecuta JavaScript del atacante en el navegador de otro usuario — permitiéndote robar tokens de sesión, realizar acciones como ese usuario o registrar sus pulsaciones en la página.
La cadena
Considera una aplicación donde las «notas» de los clientes se almacenan mediante un backend SQL y luego se renderizan en un panel de revisión admin sin una codificación de salida adecuada:
- Inyectar vía SQLi o un campo almacenado: colocas una carga XSS almacenada en un registro — directamente a través del formulario, o usando inyección SQL para escribir la cadena maliciosa en una columna en la que la aplicación confía y renderiza.
- Disparo en un contexto privilegiado: un admin abre el panel de revisión; tu JavaScript se ejecuta en su sesión autenticada.
- Robar la sesión / actuar como admin: la carga exfiltra la cookie de sesión del admin (o, si es HttpOnly, realiza peticiones autenticadas en su nombre mediante la propia API de la aplicación) para crear un nuevo usuario admin o cambiar la configuración.
- Profundizar vía SQLi: con acceso de admin, vuelves a la SQLi para volcar toda la tabla de usuarios, romper hashes y perseguir el RCE en el host de la base de datos — pivotando de la aplicación web a la infraestructura.
Cada paso es modesto; la cadena es un compromiso crítico.
Por qué importa en el informe
Mostrar la cadena realista replantea el riesgo de «dos fallos web» a «un atacante toma el control del admin y de la base de datos», que es el lenguaje que hace que las cosas se corrijan.
Qué buscan los entrevistadores
Pensamiento encadenado, mecánica precisa de cada fallo (XSS almacenada en un contexto privilegiado, rutas de SQLi-a-RCE) y el instinto de traducir la cadena en impacto de negocio en lugar de recitar las categorías de OWASP.
Posibles preguntas de seguimiento
- ¿Cómo lleva una XSS almacenada en un panel de administración a la toma de control total de la cuenta?
- ¿Cuándo puede una inyección SQL escalar a ejecución remota de código en el servidor de base de datos?
- ¿Por qué demostrar un encadenamiento realista resulta más persuasivo en un informe que listar dos hallazgos separados?