Domanda

Cercando di scoprire quali autorizzazioni ha l'utente '_www' sul mio server OS X. Devo scoprire se ha accesso al root, se potrebbe accedere a qualsiasi file di sistema o se può semplicemente accedere alla directory di "siti Web" di livello superiore per le scritture.

È stato utile?

Soluzione

Bene, puoi guardare dentro /etc/group Per vedere quali gruppi _www appartiene a:

$ grep _www /etc/group
_www:*:70:_devicemgr,_teamsserver

Su un server correttamente configurato, l'intero punto dell'esecuzione del server Web come utente dedicato è quello di limitare i privilegi dell'utente altrove. Tuttavia, il codice dell'applicazione Web che accede al filesystem è in grado di leggere al di fuori del documento del server.

Pertanto, qualsiasi file non di proprietà di _www ma per le quali ha le autorizzazioni di lettura ed eseguire sulla directory principale del file potrebbe essere letto in teoria _www Se il codice dell'applicazione non protegge contro questo durante la lettura del filesystem. Allo stesso modo, i file sul filesystem che sono altro possono essere modificati dal server Web se il codice dell'applicazione fornisce l'accesso ad essi.

Tali problemi sono sfruttabili quando un'applicazione utilizza l'input dell'utente per generare un percorso di file per la lettura o la scrittura, ma non riesce a proteggersi da input come: ../../../../../../../../../ che, quando eventualmente accoppiato a a Iniezione null byte potrebbe produrre nomi di file nell'applicazione come

/www/application/phptemplates/../../../../../../../../../../etc/passwd

Naturalmente, su un sistema moderno, /etc/passwd In realtà non memorizza le password, ma potrebbe rivelare gli utenti locali e altre informazioni preziose a un potenziale attaccante.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top