影响版本
2.4.0~2.4.29都有可能存在该漏洞
原理分析
进入容器
docker exec -it 容器ID /bin/bash
该程序是采用黑名单的形式,如果文件后缀名不在名单内即可上传,所以 a.php\x0A不在黑名单列表中,可以上传。但是x0A是换行符,所以apache会直接忽略,将其当成php来执行。
漏洞复现
编译环境
该环境使用vulhub搭建,该漏洞路径为 vulhub/httpd/CVE-2017-15715。进入该漏洞路径后执行以下命令
docker-compose up -d

运行环境
docker-compose up -d

启动容器后执行以下命令查看容器ID。
docker ps

进入环境
docker exec -it 容器ID /bin/bash

查看IP
cat /etc/hosts

上传一个名为1.php的文件,被拦截

在1.php后面插入一个\x0A(注意,不能是\x0D\x0A,只能是一个\x0A),不再拦截

访问刚才上传的/1.php%0a,发现能够成功解析,但这个文件不是php后缀,说明目标存在解析漏洞:

如果上传文件的php程序是设置的白名单,那么这个漏洞将无法利用。



















