该仓库包含针对 CVE-2022-45782 的概念验证漏洞利用程序,这是 dotCMS 中的一个漏洞,其密码重置令牌是使用非加密方法 RandomStringUtils.randomAlphanumeric() 生成的。由于该令牌可预测,攻击者可以暴力破解或推导出它,从而重置管理员账户的密码。
此 PoC 演示了完整的漏洞利用链:
该仓库使用一个 Git 子模块,其中包含针对易受攻击的令牌生成函数的破解器。它是用于推导/猜测由 RandomStringUtils.randomAlphanumeric() 生成的密码重置令牌的破解器的 C 语言实现。
使用子模块克隆:
git clone https://github.com/alex91ar/randomstringutils.git
PoC 要正常运行,dotCMS 必须能发送重置邮件。
编辑 docker-compose.yml:
DOT_MAIL_SMTP_USER: "<smtp_email>"
DOT_MAIL_SMTP_PASSWORD: "<smtp_pass>"
(如果使用 Gmail:启用应用专用密码,并使用生成的 16 位应用专用密码。)
docker compose up
如果启动失败(首次启动时常见),只需再次运行即可。
登录页面: https://localhost:8443/dotAdmin/#/public/login
在 dotCMS 内:
这两个账户将用于 PoC。
randomstringutils 是用于破解 dotCMS 不安全令牌的暴力破解器/破解器。
使用以下命令编译:
cd randomstringutils
gcc -lpthread -O3 -o randomutils randomutils.c
这将生成快速的令牌破解器二进制文件。
python3 poc.py
如果成功,脚本将使用破解出的管理员令牌重置管理员账户。
本仓库仅用于教育、学术和经授权的安全测试。请勿对你不拥有或未经明确许可测试的系统使用此漏洞利用程序。