简介 Apache Httpd支持一个文件拥有多个后缀,不同的后缀执行不同的命令,也就是说当我们上传的文件中只要后缀名含有php,该文件就可以被解析成php文件,利用Apache httpd这个特性,就可以绕过上传文件的白名单。
该漏洞和apache版本和php版本无关,属于用户配置不当造成的解析漏洞
原理 由于管理员的错误配置, AddHandler application/x-httpd-php .php,在有多个后缀的情况下,只要一个文件含有.php后缀的文件即将被识别成PHP文件,没必要是最后一个后缀。利用这个特性,将会造成一个可以绕过上传白名单的解析漏洞。
运维人员给.php后缀增加了处理器:
AddHandler application/x-httpd-php .php
那么,在有多个后缀的情况下,只要一个文件含有.php后缀的文件即将被识别成PHP文件,没必要是最后一个后缀。利用这个特性,将会造成一个可以绕过上传白名单的解析漏洞。
环境搭建与复现 运行如下命令启动一个稳定版Apache,并附带PHP 7.3环境:
docker-compose up -d
文章图片
浏览器访问http://172.17.0.1/uploadfiles/phpinfo.php.jpg,发现phpinfo被执行了,该文件被解析为php脚本
文章图片
修复建议 1、使用SetHandler,写好正则
SetHandler application/x-httpd-php
2、禁止.php这样的文件执行
Require all denied
【Apache HTTPD 多后缀解析漏洞】
推荐阅读
- Python进阶|警惕 Python 中少为人知的 10 个安全陷阱
- k8s|k8s(六)(配置管理与集群安全机制)
- Java程序|软件测试八款优秀的API安全测试工具,会用三款工作效率能提升50%
- 内网渗透|内网渗透-最实用的信息收集
- 定位|浅谈大规模红蓝对抗攻与防
- 计算机网络重点回顾