Loading
_ DESCIFRANDO CONEXIÓN SEGURA...

Más allá de la inyección

4 tareas · 30 min · Principiante

La inyección SQL es el hallazgo de libro del análisis estático, pero la herramienta reconoce muchas más formas de equivocarse. En esta segunda pasada sobre el servicio de pagos de Cauce, Semgrep marca dos patrones distintos que salen una y otra vez en el mundo real: un comando del sistema construido con datos del usuario, y contraseñas guardadas con un cifrado que no protege nada. Reconocer cada patrón, saber por qué es peligroso y qué severidad merece parar la fusión es la misma habilidad de la sala anterior, aplicada a fallos nuevos.

0 de 4 · 0%

Objetivo de la sala

La inyección SQL es el hallazgo de libro del análisis estático, pero la herramienta reconoce muchas más formas de equivocarse. En esta segunda pasada sobre el servicio de pagos de Cauce, Semgrep marca dos patrones distintos que salen una y otra vez en el mundo real: un comando del sistema construido con datos del usuario, y contraseñas guardadas con un cifrado que no protege nada. Reconocer cada patrón, saber por qué es peligroso y qué severidad merece parar la fusión es la misma habilidad de la sala anterior, aplicada a fallos nuevos.

Cuando el código arma un comando del sistema pegando dentro un dato que llega del usuario —el nombre de un archivo, un parámetro— abre la puerta a la inyección de comandos: quien controla ese dato puede colar su propio comando y ejecutarlo en el servidor. En Cauce, el servicio de pagos construye un comando de exportación concatenando el nombre de archivo que envía el usuario. Es el mismo error de fondo que la inyección SQL —mezclar dato de fuera con una instrucción— en otra superficie. El arreglo también es el mismo en espíritu: pasar los argumentos por separado, sin construir la cadena del comando a mano.

Ver que inyección SQL e inyección de comandos comparten raíz —dato del usuario mezclado con una instrucción— es lo que permite reconocer la familia 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

El código arma un comando del sistema concatenando el nombre de archivo que envía el usuario. ¿Qué habilita eso?

Ver pista de ayuda

El dato del usuario entra dentro de un comando del sistema. ¿Qué puede colar quien controla ese dato?

El análisis estático también reconoce criptografía rota. En Cauce, las contraseñas de los usuarios se guardan con un resumen rápido y sin sal: un algoritmo pensado para ser veloz, no para resistir, y sin un valor único por usuario que impida precalcular. Si alguien se lleva esa tabla, revierte las contraseñas con listas ya calculadas. El arreglo no es ocultar el código: es usar un algoritmo de hashing de contraseñas diseñado para ser costoso de revertir, con una sal distinta por cada usuario.

Reconocer que «guarda contraseñas» con un resumen rápido es un hallazgo real, y no un detalle de implementación, es lo que lo saca del olvido antes de una filtración.

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

Las contraseñas se guardan con un resumen rápido y sin sal. ¿Cuál es el arreglo?

Ver pista de ayuda

El problema es que el resumen es rápido y sin sal. ¿Qué lo hace costoso de revertir y único por usuario?

Como en la sala anterior, el umbral se fija por severidad y por dónde cae el hallazgo. La inyección de comandos en el camino de pagos es crítica y explotable: se para, ese código no se fusiona hasta arreglarlo. El hashing débil de contraseñas es grave y hay que corregirlo, pero no siempre bloquea el mismo día si no está en el camino directo del cambio; se trata con prioridad alta. Y un aviso de estilo, sin datos de usuario, se registra sin bloquear. La forma se parece entre hallazgos; lo que decide es la severidad y el impacto real.

Separar lo que para de lo que se atiende con prioridad, en vez de bloquear por todo o dejar pasar todo, es lo que mantiene el control vivo.

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

El análisis marca una inyección de comandos crítica en el camino de pagos y un aviso de estilo sin datos de usuario. ¿Qué hace la cadena?

Ver pista de ayuda

Uno es crítico y explotable; el otro es cosmético. ¿Cuál para la fusión?

Abre el laboratorio de la segunda pasada del análisis de Cauce y lee la salida de Semgrep. Hay tres entradas: la inyección de comandos en el camino de pagos, el hashing débil de contraseñas y un aviso de estilo. Quédate con la crítica de inyección de comandos.

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

Aísla en la salida de Semgrep el hallazgo crítico de inyección de comandos (el del camino de pagos, no el aviso de estilo) y escribe su código de hallazgo.

Formato esperado: SAST-____

Ver pista de ayuda

Con la terminal, `cat reportes/semgrep.txt`. El crítico es el de la regla de inyección de comandos con severidad ERROR; el código está bajo esa entrada.

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