FUSE è un sistema che facilita la ricerca, all’interno delle attività di penetration test, di bug di Unrestricted Executable File Upload (UEFU). I dettagli della strategia di test possono essere trovati all’interno del paper chiamato “FUSE: Finding File Upload Bugs via Penetration Testing“.
Di seguito andremo ad analizzare come installare, configurare e lanciare FUSE: Ovviamente per qualsiasi altro dettaglio sul suo utilizzo e sul modello di test vi rimandiamo al documento sopra riportato.
Eseguiamo il setup
FUSE attualmente funziona su Ubuntu 18.04 e Python 2.7.15. Per prima cosa installiamo le dipendenze:
# apt-get install rabbitmq-server# apt-get install python-pip# apt-get install git
Ora procediamo all’installazione
$ git clone https://github.com/WSP-LAB/FUSE$ cd FUSE && pip install -r requirements.txt
FUSE utilizza un file di configurazione fornito dall’utente che specifica i parametri per un’applicazione PHP di destinazione.
Lo script deve essere compilato prima di testare un’applicazione Web di destinazione. Puoi controllare il file README e i file di configurazione di esempio. Configurazione per File Monitor (opzionale)
$ vim filemonitor.py… 10 MONITOR_PATH=’/var/www/html/’ <- Web root of the target application 11 MONITOR_PORT=20174 <- Default port of File Monitor 12 EVENT_LIST_LIMITATION=8000 <- Maxium number of elements in EVENT_LIST...
Esecuzione di Fuse
Per poter utilizzare Fuse occorre digitare i seguenti comandi.
Per eseguire Fuse:
$ python framework.py [Path of configuration file]
Per eseguire il file monitor:
$ python filemonitor.py
I risultati del test
Quando FUSE completa il test, viene creata una directory [HOST] e un file [HOST_report.txt].
- Una cartella [HOST] memorizza i file che si è tentato di caricare.
- Un file [HOST_report.txt] contiene i risultati dei test e le informazioni relative ai file che attivano la Unrestricted Executable File Upload.