🔒 Registro cerrado · Apertura oficial próximamente · Acceso exclusivo para alumnos activos
Iniciar SesiónInyección SQL en profundidad
5 tareas · 30 min · Principiante
La inyección SQL no es una sola técnica: es una familia. A veces la respuesta cambia visiblemente, a veces solo cambia un sí por un no, y a veces lo único que cambia es cuánto tarda el servidor en responder. Saber cuál es cuál decide cómo se confirma y cuánto se puede extraer sin pasarse. Se practica contra la tienda de Arrecife Comercio en el laboratorio de la nube, con la estación de ataque y herramientas como sqlmap, siempre dentro del alcance. Esta sala es de criterio: distinguir los tipos de inyección por su síntoma y entender hasta dónde llega cada uno, sin volcar más de lo que prueba el hallazgo.
Objetivo de la sala
La inyección SQL no es una sola técnica: es una familia. A veces la respuesta cambia visiblemente, a veces solo cambia un sí por un no, y a veces lo único que cambia es cuánto tarda el servidor en responder. Saber cuál es cuál decide cómo se confirma y cuánto se puede extraer sin pasarse. Se practica contra la tienda de Arrecife Comercio en el laboratorio de la nube, con la estación de ataque y herramientas como sqlmap, siempre dentro del alcance. Esta sala es de criterio: distinguir los tipos de inyección por su síntoma y entender hasta dónde llega cada uno, sin volcar más de lo que prueba el hallazgo.La inyección más fácil de ver es la que devuelve un error de base de datos, pero muchas no dan ninguno. En la inyección ciega booleana, la aplicación no muestra el dato ni el error: solo se comporta distinto ante una condición verdadera y una falsa —la página carga o no, aparece un resultado o no—. Se extrae información preguntando de a un bit: «¿la primera letra es mayor que la eme?», y se deduce la respuesta por el comportamiento. Es lento pero funciona donde no hay error visible.
En Arrecife, el buscador de la tienda no muestra errores, pero responde distinto ante una condición verdadera y una falsa. Ese contraste es una inyección ciega booleana: se confirma observando el comportamiento, no esperando un mensaje de error.
Esta tarea se hace en el laboratorio
Un escritorio Linux con terminal, aquí en la página. No instalas nada y no puedes romper nada.
Responde para continuar
Un campo de Arrecife no da errores pero responde distinto ante una condición verdadera y una falsa. ¿Qué tipo de inyección es?
Ver pista de ayuda
Sin error ni dato visible, pero con comportamiento distinto según la condición: esa es la firma de la inyección ciega booleana.
Hay un caso aún más callado: la aplicación responde igual pase lo que pase, sin cambio visible ni de comportamiento. Ahí queda la inyección basada en tiempo: se inyecta una condición que, si es verdadera, obliga a la base de datos a esperar unos segundos antes de responder. Si la respuesta tarda, la condición era cierta; si llega rápido, era falsa. Se extrae igual que la booleana —bit a bit— pero leyendo el reloj en vez del comportamiento. Es la última vía cuando no hay ningún otro indicio.
En Arrecife, si un parámetro no cambiara ni el contenido ni el comportamiento, la prueba sería inyectar un retardo condicional y medir el tiempo de respuesta. Un retardo que aparece solo cuando la condición es verdadera confirma la inyección sin ver un solo dato.
Esta tarea se hace en el laboratorio
Un escritorio Linux con terminal, aquí en la página. No instalas nada y no puedes romper nada.
Responde para continuar
Un parámetro de Arrecife responde idéntico siempre, sin cambios visibles. ¿Cómo confirmas si hay inyección?
Ver pista de ayuda
Cuando ni el contenido ni el comportamiento cambian, queda el reloj. Un retardo que aparece solo con la condición verdadera lo confirma.
Confirmar la inyección es el principio; extraer es donde se mide el criterio. Según los permisos de la cuenta de base de datos, una inyección permite enumerar las tablas, leer columnas con credenciales, a veces escribir archivos o ejecutar comandos. Pero el objetivo del pentest no es vaciar la base: es probar el alcance del fallo con la mínima evidencia. Enumerar el esquema y mostrar que existe una tabla de credenciales demuestra el impacto; descargar millones de registros es custodiar datos sensibles que no se necesitan y suele violar las reglas de manejo de datos.
En Arrecife, la inyección deja enumerar el esquema y llegar a una tabla con credenciales internas. El hallazgo se prueba mostrando que esa tabla es legible, no volcándola entera.
Esta tarea se hace en el laboratorio
Un escritorio Linux con terminal, aquí en la página. No instalas nada y no puedes romper nada.
Responde para continuar
Confirmas una inyección en Arrecife que deja leer el esquema. ¿Hasta dónde extraes?
Ver pista de ayuda
El hallazgo se prueba con la evidencia mínima. Mostrar que la tabla de credenciales es legible basta; volcarla entera es riesgo sin beneficio.
Una herramienta como sqlmap acelera el trabajo —prueba técnicas, detecta el tipo de inyección, enumera—, pero automatizar no es delegar el criterio. Lanzada a lo bruto puede disparar miles de peticiones, intentar escalar a ejecución de comandos o volcar de más, cruzando el alcance sin que nadie lo decida. El uso correcto es acotarla: apuntarla al parámetro confirmado, limitar lo que enumera a lo que el hallazgo necesita, y no activar las opciones que escriben o ejecutan salvo que las reglas lo autoricen. La herramienta trabaja; el pentester decide.
En Arrecife, sqlmap confirma la inyección y enumera el esquema. Se la mantiene acotada al parámetro y a la lectura necesaria, no se la suelta a volcar y escalar por su cuenta.
Esta tarea se hace en el laboratorio
Un escritorio Linux con terminal, aquí en la página. No instalas nada y no puedes romper nada.
Responde para continuar
Usas sqlmap sobre la inyección confirmada de Arrecife. ¿Cómo la manejas?
Ver pista de ayuda
Automatizar no delega el criterio. Se apunta al parámetro confirmado y se limita a lo necesario, sin escribir ni ejecutar sin permiso.
La inyección deja leer el esquema y llegar a los datos que importan. Abre el laboratorio y lee la salida de la enumeración de la base: entre las tablas aparece una que guarda credenciales de cuentas internas. Aísla el nombre de esa tabla.
Esta tarea se hace en el laboratorio
Un escritorio Linux con terminal, aquí en la página. No instalas nada y no puedes romper nada.
Responde para continuar
Abre el laboratorio y lee la enumeración del esquema. ¿Cómo se llama la tabla que guarda credenciales internas? Escríbela tal cual.
Ver pista de ayuda
Está en la lista de tablas de la salida, marcada como la que contiene credenciales internas. El nombre sale del laboratorio, no de la teoría.
Preparando el escritorio…
Whoami-Labs Pro
Whoami-Labs Pro utiliza cookies
Utilizamos cookies y almacenamiento local para el funcionamiento del sitio, seguridad de sesión y, si lo autorizas, analítica y marketing. Puedes aceptar, rechazar o personalizar. Política de Privacidad
Preferencias
Configuraciones de cookies
Elige qué categorías permitir. Las esenciales siempre están activas. Consulta la Política de Privacidad.
Esenciales
Siempre activas · sesión, CSRF, tema y esta preferencia
Necesarias para iniciar sesión, proteger formularios (CSRF) y recordar tu elección de cookies y tema. Sin ellas la plataforma no funciona de forma segura.
Analíticos
Hoy no activos en la plataforma; listos para cuando se conecten
Nos ayudan a entender uso de cursos y páginas. Si los activas, se usarán cuando conectemos analítica; hasta entonces no se carga ningún tracker.
Marketing
Hoy no activos; campañas futuras solo con tu permiso
Comunicaciones o campañas. No activos hoy en la plataforma; quedarán listos si los conectamos y solo si los permites.