Introducción 03
Este reto
Aquí, debe comenzar a usar la funcionalidad tal como estaba destinada a ser utilizada. Esto te dará una idea de lo que hace el código.
Puede ver que proporciona una dirección IP y que la aplicación está ejecutando el comando ping con la dirección IP que proporcionamos. Está ejecutando un comando. Veamos si hay alguna forma de abusar de esta funcionalidad.
Al investigar un poco, encontrará que hay un tipo de ataque conocido como inyección de comandos.
Inyección de comandos
La inyección de comandos se puede utilizar para ejecutar comandos arbitrarios en un servidor. Se pueden utilizar varias cargas útiles para desencadenar este comportamiento. Por ejemplo, supongamos que el comando inicial es:
ping [parameter]Dónde [parameter] es el valor que proporcionó en el formulario o en la URL.
Si observa cómo funciona la línea de comandos, encontrará que hay varias formas de agregar más comandos:
command1 && command2que se ejecutarácommand2sicommand1consigue.command1 || command2que se ejecutarácommand2sicommand1falla.command1 ; command2que se ejecutarácommand1entoncescommand2.command1 | command2que se ejecutarácommand1y enviará la salida decommand1alcommand2....
En esta aplicación, podemos proporcionar un parámetro para command1, pero no hay command2. Lo que vamos a hacer es añadir nuestro propio comando.
En lugar de enviar el archivo [parameter] al comando:
Dónde 127.0.0.1 es nuestro [parameter]. Vamos a enviar un mensaje malicioso [parameter] que contendrá otro comando:
La aplicación pensará que 127.0.0.1 ; cat /etc/passwd es solo un parámetro para ejecutar command1. Pero en realidad inyectamos command2: cat /etc/passwd.
Ahora, lo que queremos hacer es ejecutar el comando para puntuar: /usr/local/bin/score [uuid]. Podemos usar la línea de arriba para ejecutar este comando en lugar de cat /etc/passwd.
La instancia http://ptl-48bb236cd466-ac89d1602f00.libcurl.me se está ejecutando...


Ahora inyectamos el código ; cat /usr/local/bin/score/[uuid]

Para finalizar este ejercicio, debes ejecutar el binario con tu UUID como primer argumento:
/usr/local/bin/score 394f5d1e-3995-4159-a275-698ed08a1c75
Puede acceder a este ejercicio utilizando la siguiente URL: http://ptl-47d95251-88594521.libcurl.so/. También puede usar la versión TLS si experimenta tiempos de espera agotados debido al filtrado de red: https://ptl-47d95251-88594521.libcurl.so/.

Last updated
