Come sfruttare la chiamata di sistema quando viene fornito il percorso completo di binario all'interno della chiamata?

0

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.

  1. Non riesco a individuare il file binario per il comando export .
  2. Non riesco a creare una variabile $PATH che chiamerà il mio comando personalizzato file mentre viene chiamato il percorso completo nella system() del programma da sfruttare.
  3. 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.
posta hax 10.10.2016 - 14:11
fonte

1 risposta

2

Ho compilato il programma e posso eseguire il comando "id" fornendo

'id'

come arg su stdin. Sembra che abbiano mancato l'apice come carattere proibito. Forse puoi creare uno script sh che crei un utente root ...

    
risposta data 10.10.2016 - 15:30
fonte

Leggi altre domande sui tag