漏洞复现
01-环境搭建
02-Tomcat
03-Nginx
04-Apache
05-JBoss
06-WebLogic
07-Nacos
08-Struts2
09-Spring
10-Log4j2
11-Shiro
12-FastJson
13-RuoYi
14-ThinkPHP
-
+
04-Apache
浏览
3
# 一、Apache  Apache(音译为阿帕奇)是世界使用排名第一的Web服务器软件。它可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台和安全性被广泛使用,是最流行的Web服务器端软件之一。 # 二、多后缀解析漏洞 ## 漏洞描述 apache多后缀解析漏洞(apache_parsing_vulnerability) ```txt vulhub/httpd/apache_parsing_vulnerability ``` apahe解析文件时候有一特性,Apache默认一个文件可以有多个以点分割的后缀,apache会从最右边开始识别其后缀名,如遇无法识别的后缀名则依次往左进行识别。 如果运维人员给.php后缀的文件添加了处理程序 AddHandler application/x-httpd-php .php 那么在有多个后缀的情况下,只要文件含有.php后缀那么该文件就会被识别为PHP文件进行解析。 ## 影响范围 - 全版本 ## 漏洞复现 进入靶场环境,启动容器 ```txt root@ubuntu:~/vulhub# cd ./httpd/apache_parsing_vulnerability/ root@ubuntu:~/vulhub/httpd/apache_parsing_vulnerability# docker compose up -d ```  首先准备一个shell.php木马  直接上传shell.php,显示类型不正确   在后缀名.php后面加上.jpg,再次进行上传  上传成功  对文件进行访问传参  ## 修复建议 - 通过正则方式来对其进行限制;在配置文件中添加如 匹配样式为 .php. 的文件并拒绝访问 # 三、CVE-2017-15715 ## 漏洞描述 换行解析漏洞 apache 在修复第一个后缀名解析漏洞时,用正则来匹配后缀。在解析 php 时 xxx.php\x0A 将被按照 php 后缀进行解析,导致绕过一些服务器的安全策略。 ## 影响范围 - 2.4.0~2.4.29 版本 ## 漏洞原理 解析漏洞的根本原因就是这个 $ ,正则表达式中,我们都知道 $ 用来匹配字符串结尾位置. $符号: 匹配输入字符串的结尾位置。如果设置了 RegExp 对象的 Multiline 属性,则 $ 也匹配 '\n' 或 '\r'。 要匹配 $ 字符本身,请使用 \$。 如果设置MULTILINE标示,就当作换符处理,如果不设置就当作一行文本处理 打开httpd-php.conf,通过正则匹配到$结尾,刚刚那个只要有.php就解析  ## 漏洞复现 进入靶场环境,启动容器 ```txt root@ubuntu:~/vulhub# cd ./httpd/CVE-2017-15715/ root@ubuntu:~/vulhub/httpd/CVE-2017-15715# docker compose up -d ```  查看index.php的后端源码  采用黑名单的形式,如果文件后缀名不在名单内即可上传,所以 a.php\0A不在黑名单列表中,可以上传。 但是0A是换行符,所以apache会直接忽略,将其当成php来执行。 上传shell.php进行抓包   通过16进制在abc.php换为一个oa换行符   0d换为0a  放包后页面显示空白  访问abc.php%oa并进行传参  ## 修复建议 - 升级版本 # 四、CVE-2021-41773 ## 漏洞描述 路径遍历漏洞,如果文档根目录以外的文件不受 require all denied 保护,则攻击者可以访问这些文件。 ## 影响范围 - 2.4.49 版本 ## 漏洞原理 在 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 的服务器上执行任意命令。 ## 漏洞复现 进入靶场环境,启动容器 ```txt root@ubuntu:~/vulhub# cd ./httpd/CVE-2021-41773/ root@ubuntu:~/vulhub/httpd/CVE-2021-41773# docker compose up -d ``` 访问该poc路径 ```txt /icons/.%2e/%2e%2e/%2e%2e/%2e%2e/etc/passwd ```  ## 修复建议 - 升级到 Apache HTTP Server 2.4.51 及以上版本
毛林
2026年11月15日 18:41
转发文档
收藏文档
上一篇
下一篇
评论(0)
登录
后可发表评论
还没有评论,来抢沙发~
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
Word文档
PDF文档(打印)
分享
链接
类型
密码
更新密码
还没有评论,来抢沙发~