Estaba trabajando en un desafío en el que tengo que explotar un programa de C para obtener privilegios elevados en un sistema Linux. Para completarlo, tengo que llamar a un programa /bin/test
mientras el programa vulnerable se ejecuta con un nivel de privilegio elevado. El fragmento de código relevante se muestra a continuación.
Pude explotar otro programa que usó system("cat <some file>")
sin ningún problema. En ese caso, creé un programa en C con el que ejecuté /bin/test
, lo llamé cat y lo guardé en un directorio que luego agregué a la variable $PATH
.
Sin embargo, en este caso no puedo seguir el enfoque anterior por dos razones diferentes.
- No puedo ubicar el binario para el comando
export
. - No puedo crear una variable
$PATH
que llame a mi comando personalizadofile
ya que se llama a la ruta completa en elsystem()
del programa que se va a explotar. - También tenga en cuenta que el programa elimina el punto y coma y un par de caracteres especiales, lo que dificulta la adición de varios comandos en la llamada al sistema.