ninajafli/DotCMS-CVE-2022-45782
GitHub: ninajafli/DotCMS-CVE-2022-45782
该项目是 dotCMS CVE-2022-45782 密码重置令牌可预测漏洞的概念验证工具,包含 C 语言令牌破解器和完整的利用链脚本。
Stars: 1 | Forks: 0
# CVE-2022-45782 – dotCMS 密码重置令牌可预测性 (PoC)
本仓库包含 CVE-2022-45782 的概念验证 exploit,该漏洞存在于 dotCMS 中,其密码重置令牌是使用非加密方法 `RandomStringUtils.randomAlphanumeric()` 生成的。
由于该令牌是可预测的,攻击者可以对其进行暴力破解或推导,从而重置管理员账户的密码。
此 PoC 演示了完整的 exploit 链:
- 运行易受攻击的 dotCMS 实例
- 触发密码重置
- 接收攻击者的重置令牌
- 使用 randomstringutils 仓库破解管理员的令牌
- 重置管理员账户
## 仓库结构
本仓库使用了一个 Git submodule,其中包含了用于易受攻击的令牌生成函数的破解器。
它是破解器的 C 语言实现,用于推导/猜测由 `RandomStringUtils.randomAlphanumeric()` 生成的密码重置令牌。
使用 submodule 进行克隆:
```
git clone https://github.com/alex91ar/randomstringutils.git
```
## 运行易受攻击的 dotCMS 实例
1. 配置 SMTP(以 Gmail 为例)
dotCMS 必须发送重置电子邮件,PoC 才能正常工作。
编辑 docker-compose.yml:
```
DOT_MAIL_SMTP_USER: ""
DOT_MAIL_SMTP_PASSWORD: ""
```
(如果使用 Gmail:请启用应用专用密码并使用生成的 16 位字符应用专用密码。)
2. 启动 dotCMS
```
docker compose up
```
如果失败(在首次启动时很常见),只需再次运行即可。
登录页面:
https://localhost:8443/dotAdmin/#/public/login
3. 创建账户
在 dotCMS 内部:
- 创建一个管理员账户
- 创建一个单独的攻击者账户
PoC 将使用这两个账户。
## 编译令牌破解器 (randomstringutils)
randomstringutils 是针对 dotCMS 不安全令牌的暴力破解器/破解器。
使用以下命令进行编译:
```
cd randomstringutils
gcc -lpthread -O3 -o randomutils randomutils.c
```
这将生成快速的令牌破解器二进制文件。
## 运行 Exploit (PoC)
1. 设置攻击者和管理员的用户名(在 README 或 poc.py 中,具体取决于您的配置)
2. 运行概念验证:
```
python3 poc.py
```
3. 攻击者会收到自己的密码重置电子邮件
4. 在出现提示时,将攻击者的重置令牌粘贴到终端中
5. PoC 使用 randomutils 破解器计算匹配的管理员重置令牌,并暴力破解时间戳
如果成功,脚本将使用破解出的管理员令牌来重置管理员账户。
## 免责声明
本仓库仅用于教育、学术和授权的安全测试。
请勿对您不拥有或未获得明确测试许可的系统使用此 exploit。
标签:PoC, Web安全, 令牌预测, 安全, 密码重置, 暴力破解, 蓝队分析, 请求拦截, 超时处理, 逆向工具