Esporta variabili di env sul server? (Shellshock)

3

Stavo leggendo su Shellshock e come funziona. Da quanto ho capito sfrutta il fatto che il codice viene eseguito anche dopo l'esportazione della definizione della funzione che viene esportata come variabile env.

Perché il fatto che tu possa impostare variabili ambientali su un server è un grosso problema di sicurezza?

    
posta TheMeaningfulEngineer 26.09.2014 - 12:12
fonte

3 risposte

7

L'attaccante non sta impostando le variabili d'ambiente da solo. Quello che sta succedendo è che le specifiche CGI per la comunicazione tra un server web e gli eseguibili CGI dicono che un certo numero di parametri (come le intestazioni HTTP) devono essere passati come variabili d'ambiente.

Ciò significa che un utente malintenzionato non può impostare variabili sensibili come PATH o LD_LIBRARY_PATH , ma hanno il controllo su quelle come HTTP_USER_AGENT . L'attacco "shellshock" non si cura delle variabili d'ambiente che usa, ha solo bisogno di fare in modo che uno di essi assomigli a una funzione bash .

    
risposta data 26.09.2014 - 12:20
fonte
2

Un'altra fonte di vulnerabilità sono le intestazioni HTTP come Autorizzazione o Referer . Questo può essere formato maliziosamente per iniettare un comando Bash. Nota, tutti i comandi verranno eseguiti con il privilegio dell'utente che mod_cgi è in esecuzione.

    
risposta data 26.09.2014 - 12:43
fonte
0

Come ha detto Mark, le variabili di ambiente non sono impostate sul server. Piuttosto, sono valori scelti (non arbitrariamente) e passati come variabili d'ambiente.

Per un'idea di come viene abusato, ecco un post sul blog di due giorni fa con l'HTTP_USER_AGENT indirizzato specificamente.

link

    
risposta data 26.09.2014 - 12:30
fonte

Leggi altre domande sui tag