🔒 Registro cerrado · Apertura oficial próximamente · Acceso exclusivo para alumnos activos
Iniciar SesiónHallar 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.
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.
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.
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.
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.
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.
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.