社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  NGINX

CVE-2025-0108:通过 PAN-OS Nginx/Apache 路径混淆实现的身份验证绕过漏洞 _

Ots安全 • 昨天 • 4 次点击  

目标

  • PAN OS 10.2.x < 10.2.13-h3

  • PAN OS 11.0.x < 11.1.6-h1

  • PAN OS 11.2.x < 11.2.4-h4

解释

CVE-2025-0108是在 Palo Alto Networks PAN-OS 防火墙管理界面中发现的一个身份验证绕过漏洞。它是由 Assetnote 研究团队在分析CVE-2024-0012 和 CVE-2024-9474补丁时发现的。

先前的漏洞(CVE-2024-0012 和 CVE-2024-9474)被攻击者利用,通过禁用 PAN-OS 防火墙来获取 root 权限,而研究团队在分析这些漏洞的修补过程时,发现 PAN-OS 管理界面中存在一个漏洞,这导致了新的身份验证绕过漏洞 CVE-2025-0108。

该漏洞是通过利用Nginx → Apache → PHP 的复杂身份验证处理过程中出现的路径混淆和双重 URL 解码问题

来绕过身份验证的。 PAN-OS 的管理界面通过以下方式处理 Web 请求:

1. Nginx 步骤

接收客户端的请求并X-pan-AuthCheck设置标头以确定是否需要身份验证。此后,包含特定路径(包括)/unauth/的请求可以被视为不需要身份验证。

if ($uri~ ^\/unauth\/.+$) {
  set$panAuthCheck'off';
}

这会导致/unauth/包含路径的请求X-pan-AuthCheck: off被设置并被视为不需要身份验证。

2. Apache 步骤

重新处理从 Nginx 转发的请求并mod_rewrite通过 重写特定路径。


    DirectorySlashoff
    RewriteEngineon
    RewriteRule ^(.*)(\/PAN_help\/)(.*)\.(css|js|html|htm)$ $1$2$3.$4.gz [QSA,L]
     AddEncoding gzip .gz

    Options Indexes FollowSymLinks
    Requireall granted
  • 当请求转发到 Apache 时,Apache 会再次解释路径并执行内部重定向。

  • 由于URL 需要再次解码,因此该过程可能会引入路径混淆。

3. PHP 步骤

根据从 Apache 传递的请求,它确定该请求是否真正经过身份验证并处理该请求。

if (
    $_SERVER['HTTP_X_PAN_AUTHCHECK'] != 'off'
    && $_SERVER['PHP_SELF'] !== '/CA/ocsp'
    && $_SERVER['PHP_SELF'] !== '/php/login.php'
    && stristr($_SERVER['REMOTE_HOST'], '127.0.0.1') === false
) {
    // ... check authentication ...
}

如果请求传递给 PHP 应用程序X-pan-AuthCheck: off,则认为不需要身份验证。

Apache 的路径重新解释问题

Apache RewriteRule在处理时执行内部重定向,这涉及再次解码 URL。

RewriteRule (.*)\.abc$ $1 [L]

通过利用双重解码问题,攻击者可以尝试使用双重 URL 编码来绕过身份验证。

攻击者可以通过发送如下请求来绕过身份验证:
GET /unauth/%252e%252e/php/ztp_gate.php/PAN_help/x.css HTTP/1.1
Host: target.firewall
Connection: close

如何处理请求

1、Nginx 处理

  • %252e%252e在第一次 URL 解码中转换为%2e%2e( )..

  • /unauth/%2e%2e/php/ztp_gate.php/PAN_help/x.css因为路径/unauth/包含X-pan-AuthCheck: off(即不需要身份验证)而被设置

2、Apache 处理

  • Apache 重新处理路径并执行内部重定向。

  • %2e%2e再次解码,实际请求路径/php/ztp_gate.php/PAN_help/x.css变为

  • Apache 将此请求视为普通的 PHP 执行请求ztp_gate.php并执行它。

3、运行 PHP

  • 该请求/php/ztp_gate.php已被转发且X-pan-AuthCheck: off处于无需身份验证即可执行的状态。

该漏洞已在PAN-OS 10.2.13-h3、11.1.6-h1、11.2.4-h4及后续版本中修复。


感谢您抽出

.

.

来阅读本文

点它,分享点赞在看都在这里


Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/180726
 
4 次点击