Bypassing Client-Side Filtering
In questa challenge c'era un filtro lato client che accettava in upload solo file "/image/png".Per prima con gobuster sono andato ad enumerare le directory del sito in modo da trovare la cartella dove
In questa challenge c'era un filtro lato client che accettava in upload solo file "/image/png".Per prima con gobuster sono andato ad enumerare le directory del sito in modo da trovare la cartella dove andavano a finire gli upload fatti nel sito. Dopo io ho catturato una richiesta GET del sito con burpsuite, poi ho fatto tasto destro "Do-Intercept" -> "Response to this request". Poi ho fatto il forward della richiesta ed ho ricevuto la risposta da parte del server. Qui sono andato ad eliminare lo script che si occupava del filtering dell'upload, poi di nuovo forward della richiesta. Il sito web nel browser si ricarica, però questa volta senza lo script che si occupa del filtering, allora ora faccio l'upload della shell.php, però con l'estensione cambiata in shell.png. Catturo di nuovo la richiesta con burpsuite e vado a cambiare il Content-Type da "image/png" a "text/x-php", ed il filename da "shell.png" a "shell.php". Poi vado ad aprire la shell dalla cartella degli upload del sito in modo da ottenere la reverse-shell con netcat.
i.e. https://example.com/uploads/shell.php
Provare a mettere degli slash prima del oggetto filtrato
sigla hex delle estensioni https://en.wikipedia.org/wiki/List_of_file_signatures
Inserire all'inizio del file i caratteri esadecimali dell'estensione di cui è permesso l'upload
An important Gobuster switch here is the -x switch, which can be used to look for files with specific extensions. For example, if you added -x php,txt,html to your Gobuster command, the tool would append .php, .txt, and .html to each word in the selected wordlist, one at a time. This can be very useful if you've managed to upload a payload and the server is changing the name of uploaded files.