💉Command Injection - Skills Assesment
Nos han contratado para realizar una prueba de penetración para una empresa y, durante la prueba, descubrimos una aplicación web de administración de archivos interesante. Como los administradores de archivos suelen ejecutar comandos del sistema, nos interesa probar vulnerabilidades de inyección de comandos.
Utiliza las diversas técnicas presentadas en este módulo para detectar una vulnerabilidad de inyección de comandos y luego explotarla, evadiendo cualquier filtro existente.

Al acceder con las credenciales que nos proporciona el cliente entramos a un administrador de archivos, y vemos que se añade el parámetro ?to=
a la url:

Detección de Command Injection
Detectamos que en la funcionalidad de copiar devuelve un error en el front, lo que nos permitiría explotar un command injection:

Observamos que se añade un nuevo parámetro from=

En el request observamos que se envía por GET con el siguiente formato:

Prueba de inyección de comandos
Vamos a probar a modificar la solicitud para intentar leer el archivo /etc/passwd
:

Vemos que funciona pero hay algún tipo de filtro que lo detecta como malicioso.
Bypass de filtros
Vamos a probar a listar los archivos del directorio raiz /
con el objetivo de encontrar la flag. El comando ls /
también lo considera malicioso, así que vamos a hacer el bypass:

1. Codificar comando en Base64
2. URL con payload codificado

Extracción de la flag
Vamos a repetir los mismos pasos pero enfocado a leer la flag del directorio /.
1. Codificar comando en base64
2. URL con payload codificado

Extraemos la flag sin problema!
Última actualización
¿Te fue útil?