Implicazioni sulla sicurezza dei contenuti di / proc / self / environ negli attacchi LFI

2

Durante i test di penetrazione su un sito Web, i test hanno rilevato una vulnerabilità di inclusione locale dei file in un vecchio plug-in wordpress installato. Un utente malintenzionato può sfruttare la vulnerabilità LFI per includere / etc / passwd e anche la pagina dell'indice, tuttavia quando include / proc / self / environ, tutto ciò che l'utente malintenzionato vede è questo:

CONTEXT_DOCUMENT_ROOT=/home/[website]/public_htmlCONTEXT_DOCUMENT_ROOT=/home/[website]/public_html

Non è / proc / self / environ dovrebbe mostrare altre informazioni? Come il tuo user-agent? In tal caso, perché per questo sito tutto ciò che mostra è CONTEXT_DOCUMENT_ROOT?

So che quando un utente malintenzionato include / proc / self / environ e mostra il proprio agente utente, può utilizzare i dati di manomissione per esempio per modificare il proprio agente utente sul codice PHP e caricare una shell per esempio o aprire connessioni TCP in uscita ecc.

Quindi, dato che questo è tutto / proc / self / environ mostra, vuol dire che / proc / self / environ è fondamentalmente al sicuro dagli aggressori? O possono in qualche modo manipolare questo per mostrare il loro useragent ed eseguire il codice PHP? (Perdonami se questa è una domanda stupida, sono un po 'nuovo per la sicurezza. Inoltre, ignori l'elefante nella stanza: il vero LFI vuln verrà corretto quindi non è affatto vulnerabile, ma sono ancora curioso del mio / proc / self / environ question.)

    
posta Jason Rigley 05.12.2015 - 20:14
fonte

1 risposta

1

/proc/self/environ contiene l'ambiente del processo. In questo caso, sembra che sia presente solo il CONTEXT_DOCUMENT_ROOT (ci sarebbe un \ 0 tra le due copie).

Questo sarebbe possibile. Se la tua applicazione php non viene eseguita come CGI, non è necessario che le variabili HTTP_ appaiano lì. Gli altri SAPI (come FastCGI o un modulo apache) li ricevono in un modo diverso.

Tuttavia, anche se stiamo vedendo solo l'ambiente server, e non è usato per passare parametri all'applicazione, sembra strano che le variabili tipiche come PATH o HOME non appaiano lì. E che la stessa variabile appare due volte non ha molto senso,

Perché non carichi un file php di base per stampare il contenuto di /proc/self/environ ?

I know that when an attacker includes /proc/self/environ and it does show their user agent, they can use tamper data for example to change their user agent to PHP code and upload a shell for example or open outbound TCP connections etc.

Assolutamente no. Per poter eseguire il codice, il server avrebbe bisogno di eval () l'agente utente incluso, il che sarebbe abbastanza sciocco.

I contenuti dell'ambiente potrebbero essere utili per ottenere maggiori informazioni sul server (come i percorsi) per ulteriori attacchi, tuttavia.

    
risposta data 05.12.2015 - 23:34
fonte

Leggi altre domande sui tag