Stavo lavorando su una sfida in cui devo sfruttare un programma C per ottenere privilegi elevati in un sistema Linux. Per completarlo, devo chiamare un programma /bin/test mentre il programma vulnerabile è in esecuzione con un livello di privilegio elevato. Di seguito è riportato lo snippet di codice pertinente.
Sono riuscito a sfruttare un altro programma che ha utilizzato system("cat <some file>") senza problemi. In quel caso ho creato un programma C con cui è stato eseguito /bin/test , chiamato gatto e mantenuto in una directory che ho aggiunto successivamente alla variabile $PATH .
Tuttavia in questo caso non sono in grado di seguire l'approccio di cui sopra per due diversi motivi.
- Non riesco a individuare il file binario per il comando
export. - Non riesco a creare una variabile
$PATHche chiamerà il mio comando personalizzatofilementre viene chiamato il percorso completo nellasystem()del programma da sfruttare. - Si noti inoltre che il programma disinfetta il punto e virgola e un paio di caratteri speciali che rendono difficile l'aggiunta di più comandi nella chiamata di sistema.