Loading
_ DESCIFRANDO CONEXIÓN SEGURA...

Inyecció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.

0 de 5 · 0%

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.

Preparando el escritorio…

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.

Preparando el escritorio…

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.

Preparando el escritorio…

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.

Preparando el escritorio…

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.

Preparando el escritorio…

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.

Inicia sesión para registrar tus puntos y progreso en el ranking.

Preparando el escritorio…

16:24
Terminal (user@whoami)
user@whoami:~$
Tab Autocompletar ↑/↓ Historial
bash 5.2.21
Whoami-Labs OS v3.0.1 LTS · build bcc89e

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