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安全, 令牌预测, 安全, 密码重置, 暴力破解, 蓝队分析, 请求拦截, 超时处理, 逆向工具