Loading
_ DESCIFRANDO CONEXIÓN SEGURA...

Hallar la inyeccion en el codigo

4 tareas · 25 min · Principiante

La inyeccion no es magia: es una entrada del usuario que llega a un sitio donde se mezcla con instrucciones —una consulta SQL, una llamada al sistema— sin separar los datos de las ordenes. El auditor la encuentra leyendo el codigo, siguiendo de donde viene la entrada hasta donde se usa. En Rividata hay dos casos en el codigo fuente. Se localizan, se clasifican y se arreglan; no se explota nada.

0 de 4 · 0%

Objetivo de la sala

La inyeccion no es magia: es una entrada del usuario que llega a un sitio donde se mezcla con instrucciones —una consulta SQL, una llamada al sistema— sin separar los datos de las ordenes. El auditor la encuentra leyendo el codigo, siguiendo de donde viene la entrada hasta donde se usa. En Rividata hay dos casos en el codigo fuente. Se localizan, se clasifican y se arreglan; no se explota nada.

Auditar una inyeccion es seguir un hilo: donde entra el dato del usuario y donde termina. En catalogo.php de Rividata la entrada es $_GET['cat'], y el hilo termina dentro de una cadena que se arma pegando ese valor entre comillas en un SELECT. Cuando el dato y la instruccion viven en la misma cadena, el motor no puede distinguir uno de otra: ahi esta el fallo. El auditor lo reconoce por la concatenacion, no por probar nada.

Abre el archivo y mira como se construye $sql. La pista es el operador que pega la variable dentro del texto de la consulta.

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

En catalogo.php, por que la consulta es vulnerable?

Ver pista de ayuda

Mira donde termina el valor de cat dentro de la variable sql.

Encontrar el fallo es media auditoria; la otra media es recomendar el arreglo correcto. Contra la inyeccion SQL el arreglo no es filtrar palabras ni escapar comillas a mano —eso siempre se le escapa un caso—, sino usar una consulta parametrizada: la instruccion va con marcadores fijos y el dato se envia aparte, de modo que el motor nunca lo interpreta como orden. Es la unica correccion que cierra la clase entera del fallo.

Una lista negra de palabras prohibidas parece razonable y no lo es: siempre falta una forma de escribir lo mismo.

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

Que arreglo recomiendas para la consulta de catalogo.php?

Ver pista de ayuda

El arreglo bueno hace que el motor nunca trate el dato como instruccion.

La inyeccion SQL es la mas conocida, pero el patron —entrada del usuario que se mezcla con instrucciones sin separar— aparece en otros sitios. En herramientas.php de Rividata el valor $_GET['host'] se concatena dentro de una llamada a shell_exec, el interprete de comandos del sistema. Es la misma clase de fallo con otro destino: inyeccion de comandos. El auditor la clasifica distinto (CWE-78) porque el arreglo tambien cambia: separar los argumentos del comando en vez de pegarlos.

Reconocer que es el mismo patron en otra salida es lo que distingue a quien audita de quien memoriza un caso.

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

Como clasificas el fallo de herramientas.php, donde host entra en shell_exec?

Ver pista de ayuda

El destino no es una base de datos, es el sistema operativo.

La nota de triaje de Rividata recoge el hallazgo principal: el archivo, el parametro vulnerable, su clasificacion CWE y el arreglo. Abrela en el laboratorio, confirma que describe la inyeccion SQL de catalogo.php y lee el codigo del hallazgo con el que cierra. Ese codigo identifica el fallo en el informe que va a desarrollo.

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 la nota de triaje de Rividata (carpeta auditoria) y escribe el codigo del hallazgo que la cierra.

Ver pista de ayuda

Ultima linea de auditoria/hallazgo.txt, despues del parametro y el arreglo.

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