攻击者可以利用这个漏洞在做事器上上传恶意文件。例如,如果做事器阻挡了某些文件的上传,但许可上传的文件名以"$"字符结尾,攻击者可以布局一个恶意文件名,使其在匹配<FilesMatch>指令时仅匹配到文件名的末端部分。这样,攻击者就可以绕过做事器的安全限定,并成功上传恶意文件。
为了修复该漏洞,Apache HTTP Server的掩护者发布了更新版本(2.4.33),个中修复了<FilesMatch>指令对""字符的阐明办法。现在,""字符将被精确地阐明为表示文件名结束的分外字符,从而避免了潜在的攻击。
受影响版本:Apache HTTP Server的2.4.0至2.4.29版本。

详细利用办法:Apache HTTPD是一款HTTP做事器,它可以通过mod_php来运行PHP网页。其2.4.0~2.4.29版本中存在一个解析漏洞,在解析PHP时,1.php\x0A将被按照PHP后缀进行解析,导致绕过一些做事器的安全策略。
利用条件:网站须要供应上传功能,通过burpsuite抓包构建,绕过拦截,然后获取上传的文件地址,通过文件名称+%0a来进行访问。
1.2漏洞环境搭建这里采取Vulhub(https://vulhub.org/)一键搭建漏洞测试靶场,来进行漏洞复现。本次用到的所有测试环境在httpd目录下,如图1所示。
图1 所有漏洞测试环境信息
1.启动漏洞docker环境
(1)到漏洞docker所在环境
cd /opt/vulhub/httpd/CVE-2017-15715
(2)构建 Docker Compose 文件中定义的做事的镜像
docker-compose build
(3)启动在docker-compose.yml文件中定义的做事容器
docker-compose up –d
图2 启动docker
如果前面存在docker,则须要停滞前面docker。
docker ps
docker dockerid stop
2.访问漏洞环境
可以通过docker ps命令查看docker开启的端口,在本例中默认开启8080端口,直接访问虚拟机http://192.168.19.134:8080/,如图3所示,显示漏洞存在的页面。
图3 漏洞存在页面
1.3漏洞复现1.拦截测试
启动burpsuite2022版本,打开默认的调试浏览器,输入前面地址地址,单击上传,如图4所示,正常上传php文件就会涌现上传失落败提示“bad file”。
图4 上传缺点提示
2.绕过上传限定
在BurpSuite的历史记录中将该页发送到重放攻击“Send to Repeater”中,如图5所示。
图5 发送到重放攻击
在重放攻击页面中单击“16进制(hex)”找到上传文件的名称evil.php处,然后单击“insert byte”,如图6所示。
图6探求文件上传名称地址
在evil.php后面插入一个\x0A这里只须要选中0d,右击选择insert byte…后,输入0a即可插入至里面,如图7所示,确定然后发送包。比拟其值的变革前期值为“70 0d 0a 2d 2d”变动后为“70 0a 0d 0a 2d”。
图7 构建分外文件名称
3.访问文件
这里访问地址http://192.168.19.134:8080/evil.php%0a即可。
图8实行效果
防御方法:升级到最新版本