Apache HTTPD 换行解析漏洞(CVE-2017-15715)(Vulhub)
漏洞简介
Apache在2.40~2.4.29版本中存在一个换行解析漏洞(\x0A),\x0A是16进制数代表10进制数字的10,在ASCII码中,\n的ASCII码为10。在Apache解析文件时,如果在php文件后缀有\x0A,Apache会忽略它,继续把它当作php来解析,但是在一些服务器的安全策略中,代码并不会忽略它。
适用环境,
Apache2.4.0~2.4.29
环境搭建
环境路径
/root/vulhub/httpd/CVE-2017-15715
启动环境
docker-compose up -d
查看环境配置端口
docker ps
查看环境开启结果
进入容器
docker exec -it ddf /bin/bash
查看index.php,黑名单中只有php,php3,php4,php5,phtml,pht。php\x0A并不在其中。
漏洞复现
查看中间件版本是否符合漏洞适应版本(2.40~2.4.29)
上传php文件
抓包将数据包发送至repeater模块,发送数据包观察回显内容。
查看数据包16进制内容,在文件后缀最后面插入十六进制数0a,重新上传
成功上传,查看容器内是否有文件
访问文件
http://shootingrange:8080/2.php%0a
漏洞总结
利用该漏洞需要满足三个条件
- Apache版本符合
- 具有文件上传点
- 文件名可控
修复建议
- 升级最新版Apache
- 将上传文件进行重命名
- 使用云存储
- 取消目录执行权限