Verifica la presenza di vulnerabilità sul sito Web che presenta un errore con realpath PHP

0

Ho trovato un sito Web con un file download.php che può ottenere valori diversi nel parametro url (ad esempio www.example.com/download.php?url=value ). Quando fornisco ../../ come valore per url , mi viene generato il seguente errore nella pagina:

Warning: realpath() [function.realpath]: open_basedir restriction in
effect. File(/srv) is not within the allowed path(s): 
(.:/srv/www/example.com/:/tmp/:/usr/local/php526/lib/php/) 
in /srv/www/example.com/download.php on line 5

Ho cercato le vulnerabilità della funzione realpath() di PHP in PHP 5.26 o in basso e ho trovato un article sul sistema di gestione file di PHP e attacca usando questo metodo.

Vorrei accedere alla directory / etc / passwd / come file in modo da ottenere maggiori informazioni. Ho provato a utilizzare un url che è più lungo di 4096 byte ma non sembra essere troncato e non succede nulla.

www.example.com/download.php?url=../../etc/passwd/././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././/./././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././.....<...>.php

curl --head website.com restituisce

HTTP/1.1 200 OK
Date: Mon, 30 Jul 2018 11:39:01 GMT
Server: Apache/2.2.23 (Unix) mod_ssl/2.2.23 OpenSSL/0.9.8h
Content-Type: text/html

Come posso sfruttare e bypassare il sito Web utilizzando LFI o Troncamento percorso? O qual è il metodo migliore per trarre vantaggio da questo errore?

    
posta Mark Frankli 30.07.2018 - 14:15
fonte

2 risposte

1

Il messaggio di errore è abbastanza chiaro: File (/ srv) non è all'interno del percorso consentito .
Quindi, no, non puoi accedere alla directory / etc / passwd /.

La risposta che hai citato dichiara esplicitamente

No white/black lists, open_base_dir or any restrict access configuration

    
risposta data 01.08.2018 - 11:06
fonte
0

Sei sicuro che si tratta di un file locale in inclusione e non di un percorso trasversale o di una vulnerabilità di lettura di file arbitrari? LFI consente l'esecuzione di codice che dovrebbe consentire di eseguire comandi non vincolati dalle restrizioni del percorso di PHP.

Se si tratta di una chiamata di inclusione, potresti essere in grado di eseguire un file caricato da / tmp poiché tale percorso è consentito. Sebbene tu abbia bisogno di aggiustare il tuo payload, devi andare su 3 directory, e stai solo andando su 2. Altrimenti puoi usare wrappers come php: //.

Un semplice controllo per vedere se è LFI di solito può essere fatto cercando di leggere lo script download.php stesso. Uno script che include se stesso dovrebbe segfault o error out. Se tuttavia ricevi sorgente PHP, allora il file viene letto anziché eseguito e non LFI, ma trasversale o lettura arbitraria. In questo caso potresti perdere tutto il codice sorgente dell'applicazione e cercare altre vulnerabilità.

    
risposta data 01.08.2018 - 14:29
fonte

Leggi altre domande sui tag