
Nginxpwner è un semplice strumento per individuare comuni errori di configurazione e vulnerabilità di Nginx.

Nginxpwner è un semplice strumento per cercare comuni configurazioni errate e vulnerabilità di Nginx.
cd /opt
git clone https://github.com/stark0de/nginxpwner
cd nginxpwner
chmod +x install.sh
./install.sh
git clone https://github.com/stark0de/nginxpwner
cd nginxpwner
sudo docker build -t nginxpwner:latest .
Esegui l'immagine
sudo docker run -it nginxpwner:latest /bin/bash
Scheda Target in Burp, seleziona host, tasto destro, copia tutti gli URL in questo host, incollali in un file
cat urllist | unfurl paths | cut -d"/" -f2-3 | sort -u > /tmp/pathlist
Oppure ottieni l'elenco dei percorsi già scoperti nell'applicazione in qualche altro modo. Nota: i percorsi non devono iniziare con /
Infine:
python3 nginxpwner.py https://example.com /tmp/pathlist
Controlla effettivamente:
-Ottiene la versione di Nginx e recupera i suoi possibili exploit tramite searchsploit e indica se è obsoleta
-Lancia una wordlist specifica per Nginx tramite gobuster
-Verifica se è vulnerabile a CRLF tramite una comune configurazione errata che utilizza $uri nei reindirizzamenti
-Verifica la presenza di CRLF in tutti i percorsi forniti
-Verifica se il metodo HTTP PURGE è disponibile dall'esterno
-Verifica la configurazione errata che causa la perdita di variabili
-Verifica le vulnerabilità di path traversal tramite merge_slashes impostato su off
-Testa le differenze nella lunghezza delle risposte quando si utilizzano header hop-by-hop (es: X-Forwarded-Host)
-Utilizza Kyubi per testare le vulnerabilità di path traversal tramite alias configurato male
-Testa il bypass di 401/403 utilizzando X-Accel-Redirect
-Mostra il payload per verificare la configurazione errata della lettura del backend raw
-Verifica se il sito utilizza PHP e suggerisce alcuni test specifici per Nginx su siti PHP
-Testa la comune vulnerabilità di integer overflow nel modulo range filter di Nginx (CVE-2017-7529)
Lo strumento utilizza l'header Server nella risposta per eseguire alcuni test. Esistono altri CMS e simili basati su Nginx come Centminmod, OpenResty, Pantheon o Tengine, ad esempio, che non restituiscono quell'header. In tal caso, utilizza nginx-pwner-no-server-header.py con gli stessi parametri dell'altro script.
Inoltre, per far funzionare correttamente la ricerca degli exploit, dovresti eseguire: searchsploit -u in Kali di tanto in tanto
Lo strumento non controlla le vulnerabilità di web cache poisoning/inganno né lo smuggling di richieste: dovresti testarle con strumenti specifici per tali vulnerabilità. NginxPwner si concentra principalmente sulle configurazioni errate che gli sviluppatori potrebbero aver introdotto in nginx.conf senza esserne consapevoli.
Merito a shibli2700 per il suo fantastico tool Kyubi https://github.com/shibli2700/Kyubi e a tutti i contributori di gobuster. Meriti anche a Detectify (che in realtà ha scoperto molte di queste configurazioni errate in NGINX)