> For the complete documentation index, see [llms.txt](https://propus.gitbook.io/hackbook/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://propus.gitbook.io/hackbook/writeups/dockerlabs/injection.md).

# 🟦 Injection

🧠Dificultad: Muy fácil | 🔓14/07/2025

Tras desplegar la máquina, pruebo a abrir el navegador y ver si tiene alojada una página web. En efecto, aloja una página con un Login.

<div align="left"><figure><img src="https://3832202623-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FhaHYQaFsZAHOyVtSUS1x%2Fuploads%2FtZqmVT4ZP8MUyd2ImkCr%2FPasted%20image%2020250620000152.png?alt=media&amp;token=559f71cd-8ae1-4244-88a6-844d7b3fc7b7" alt="" width="430"><figcaption></figcaption></figure></div>

Como la máquina se llama Injection, me lleva a pensar que es vulnerable a SQL Injection. Pruebo poniendo una `'` en el campo user y en el campo de contraseña cualquier cosa.

<figure><img src="https://3832202623-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FhaHYQaFsZAHOyVtSUS1x%2Fuploads%2Fnisu9A94GOMiGuO6trX9%2FPasted%20image%2020250620000411.png?alt=media&amp;token=1df6634b-7216-4aa9-89d3-ae4fbca45ad8" alt=""><figcaption></figcaption></figure>

Muestra un mensaje de error de SQL. El servicio web no está sanitizando la entrada antes de hacer la consulta a la base de datos. Pruebo un query sencillo para hacer bypass al Login, `' or '1'='1' --` .

<div align="left"><figure><img src="https://3832202623-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FhaHYQaFsZAHOyVtSUS1x%2Fuploads%2FxKoZ1WdrzQy6QFet31kq%2FPasted%20image%2020250620000951.png?alt=media&amp;token=998e3506-5ab6-4753-8dd1-1ca1b59645eb" alt="" width="536"><figcaption></figcaption></figure></div>

El bypass ha sido un éxito. Se muestra en pantalla un nombre de usuario y una contraseña. Pruebo a loguearme por SSH con estas credenciales.

<div align="left"><figure><img src="https://3832202623-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FhaHYQaFsZAHOyVtSUS1x%2Fuploads%2FjrUguoX0a51CGzQZqzV9%2FPasted%20image%2020250620001358.png?alt=media&amp;token=a2ebbec0-3bde-4778-89d4-4a79eddb345b" alt="" width="562"><figcaption></figcaption></figure></div>

Hemos conseguido el acceso a la máquina. Para escalar privilegios, vamos a ver primero qué binarios hay en el sistema cuyo propietario sea `root` con el bit SUID activado.

<div align="left"><figure><img src="https://3832202623-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FhaHYQaFsZAHOyVtSUS1x%2Fuploads%2FfSvgdFOT0wzobzZ4Jtfi%2FPasted%20image%2020250620002142.png?alt=media&amp;token=925dfb63-1006-4c55-8459-8a919a44c2ed" alt="" width="410"><figcaption></figcaption></figure></div>

Buscando cada binario en la página de [gtfobins](https://gtfobins.github.io/), encuentro una explotación para el binario `env`, cuyo propietario en nuestro caso es `root`. Este exploit se logra ejecutando `/bin/sh -p` a través de `env`, que preserva el UID efectivo del proceso (`root`) gracias al uso del flag `-p`, por lo que se abrirá una shell como `root`.

<div align="left"><figure><img src="https://3832202623-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FhaHYQaFsZAHOyVtSUS1x%2Fuploads%2Fr5ecwMbUxkweT5jS2wg6%2FPasted%20image%2020250620002446.png?alt=media&amp;token=a1c7ecb3-8893-47a8-828f-35bcbf72e6f6" alt=""><figcaption></figcaption></figure></div>
