Inclusione di file locali quando l'URL viene aggiunto con .php?

4

Durante il pentesting, mi sono imbattuto in un target vulnerabile all'inclusione file locale:

include("$rootpath/includes/dir/".$_GET["section"].".php");

Quando visito l'URL http://target.com/img?section=images funziona perfettamente come images.php è presente nella directory $rootpath/includes/dir/ . Quando visito http://target.com/img?section=images.php non ottengo nulla, indicando che il server non è riuscito a trovare alcun file images.php.php .

C'è un modo per aggirare la restrizione di aggiunta di .php ? Ho provato http://target.com/img?section=images.php%00 ma il server web sta ora cercando di trovare il file http://target.com/img?section=images.php%00.php . Voglio leggere il file /etc/passwd .

    
posta Danish 29.04.2018 - 15:34
fonte

3 risposte

0

Credo che% 00 in url non funzioni. Devi utilizzare alcuni software di modifica dei pacchetti come Burp Suite e modificare la richiesta per contenere un carattere di terminazione null effettivo.

    
risposta data 29.04.2018 - 15:39
fonte
0

Hai provato a utilizzare uno strumento che ti consenta di controllare le richieste / risposte al server come Burp Suite suggerite da Peter? In questo modo puoi provare vari trucchi come intercettare richieste e risposte che potrebbero portare a bypassare l'appendice php.

E dal momento che il tuo obiettivo è vedere se il server è vulnerabile alla directory traversal o alla cattiva gestione degli accessi, puoi semplicemente provare una serie di ../ nell'URL o in Burp Suite finché non ricevi messaggi di errore che ti suggeriscono di essere nel direttamente o se sei fortunato ad aggiudicarti il jackpot e l'app ti consente di scaricare il file passwd es http://target.com/img?section=images.php/../../../../etc/passwd

    
risposta data 26.09.2018 - 21:08
fonte
0

Non conosco alcun modo per aggirare tale restrizione, ma leggere / etc / passwd è piuttosto noioso comunque. Esiste una funzione di caricamento file che è possibile utilizzare per caricare un file .php sul server? Quindi potresti usare questo errore di inclusione per eseguire il codice che hai caricato, anche se non è all'interno del webroot o altrimenti irraggiungibile solo tramite una normale richiesta GET. Questo ti dà l'esecuzione di codice arbitrario sul server, che è strettamente più potente di un file locale arbitrario.

    
risposta data 27.10.2018 - 07:44
fonte

Leggi altre domande sui tag