Ho un'applicazione vulnerabile alla directory traversal (lo so perché fa parte del testo della domanda). L'applicazione ha due directory, pubbliche e private e due file php:
-
A.php?folder=[public|private]
elenca il contenuto di entrambe le directory. -
B.php?folder=public&file=test.txt&action=[view|download]
visualizza o scarica il file specificato.
Devo visualizzare un file chiamato users.txt
che è allocato nella directory privata. B.php
sembra avere una restrizione che consente solo l'azione sulla directory pubblica, quindi se scrivo B.php?folder=private&file=users.txt&action=view
, in realtà si sta tentando di leggere \public\private\admin\users.txt
(notare la barra rovesciata, è un sistema Windows se questo è importante).
Il mio passo successivo era il salto indietro nell'albero delle directory, ma né l' ..
né il %2E%2E
sono consentiti dall'applicazione. Restituisce un messaggio che dice che il dot char non può essere usato per la cartella o il file.
Non ci sono cookie né dati POST.
Quindi, come potrei "rompere la prigione" della directory pubblica in B.php? Qualche idea?
PS: ha parlato con il mio istruttore e conferma che questa è una domanda complicata.