CVE-2017-15715 apache换行解析&文件上传漏洞

影响范围

httpd 2.4.0~2.4.29

复现环境

vulhub/httpd/CVE-2017-15715
docker-compose

漏洞原理

在apache2的配置文件:
/etc/apache2/conf-available/docker-php.conf
中,php的文件匹配以正则形式表达
CVE-2017-15715 apache换行解析&文件上传漏洞_第1张图片

".php$"的正则匹配模式意味着以.php结尾的文件名会被解析为php
但是对于字符串来说“结尾”有可能以换行作为结束
CVE-2017-15715 apache换行解析&文件上传漏洞_第2张图片如图所示,.php与.php\n均可匹配上
因此在文件上传时将php后添加\n即可
\n的ascii为10,转换为16进制为0A,构造.php[0A]16即可完成攻击

漏洞复现

在vulhub的CVE-2017-15715下

docker-compose build
docker-compose up -d

访问ip:8080即可进入页面
CVE-2017-15715 apache换行解析&文件上传漏洞_第3张图片
选择php一句话木马进行上传,并使用burp抓包
在文件名后敲一个空格,之后双击空格在右侧的十六进制处填写0A进行应用
CVE-2017-15715 apache换行解析&文件上传漏洞_第4张图片
访问8080/test.php%0A即可执行payloadCVE-2017-15715 apache换行解析&文件上传漏洞_第5张图片

修复意见

虽然源码中已经在后端做了检查,但仍应先过滤文件名的一些特殊字符再做检查
CVE-2017-15715 apache换行解析&文件上传漏洞_第6张图片

你可能感兴趣的:(漏洞复现,apache,网络安全,漏洞)