Ho fatto una domanda su questo stesso sito - Impossibile comprendere il motivo per cui l'app Web è vulnerabile a un attacco di directory trasversale , in cui mi è stato fornito un rapporto in cui si afferma che la mia app Web era vulnerabile.
Ho pubblicato pochi esempi dal rapporto, come Testing Path: http://127.0.0.1:80/??/etc/issue <- VULNERABLE! , ora mi è stato chiesto cosa fossero questi due% di% di urlatura nell'URL postato.
Ho eseguito alcuni test:
/?? restituisce la home page.
http://127.0.0.1:80/??/etc/issue restituisce la home page.
http://127.0.0.1:80/.?/etc/issue restituisce la home page.
Quindi, lo schema seguente restituisce la home page:
http://127.0.0.1:80/?./etc/issue , dove
Se http://127.0.0.1:80/Position1Position2Anything/Anythingcouldbehere = Position1 , la home page viene restituita indipendentemente dal contenuto in ? .
Se Position2 = Position1 allora . deve essere Position2 , per la pagina iniziale.
? potrebbe anche essere una stringa vuota.
Ora, tutto ciò che non corrisponde al modello sopra restituisce 400/404.
Ho eseguito il test precedente per Anything e anch'esso ha restituito lo stesso risultato (seguito lo stesso schema di security.stackexchange.com/ e . ) e ho restituito la sua Home page sul browser.
Spiega il ruolo di ? e ? negli URL.
EDIT:
È solo questo schema (quello sopra, con . e ? ) che rende l'app Web vulnerabile all'attacco di directory trasversale come da rapporto inviato dai pen-tester.