-
三. 实验环境
-
- 1. apache版本
-
2. 在网站根目录我们建一个index.php,测试是否解析
-
3. 修改文件名测试
-
4. 用文件名不包含php的文件测试
-
5. 漏洞怎么使用?
-
四. 如何解决
一. 漏洞描述
Apache Httpd支持一个文件拥有多个后缀,不同的后缀执行不同的命令,也就是说当我们上传的文件中只要后缀名含有php,该文件就可以被解析成php文件,利用Apache httpd这个特性,就可以绕过上传文件的白名单。
该漏洞和apache版本和php版本无关,属于用户配置不当造成的解析漏洞,尤其是使用module模式与php结合的所有版本
apache支持php有多种模式,常见的有module、cgi、fastcgi等,此漏洞存在于module模式
二. 漏洞原理
由于管理员的错误配置, AddHandler application/x-httpd-php .php,在有多个后缀的情况下,只要一个文件含有.php后缀的文件即将被识别成PHP文件,没必要是最后一个后缀。利用这个特性,将会造成一个可以绕过上传白名单的解析漏洞。
三. 实验环境
1. apache版本
[root@gaosh-1 modules]# httpd -v
Server version: Apache/2.2.15 (Unix)
Server built: Jun 19 2018 15:45:13
[root@gaosh-1 modules]#
2. 在网站根目录我们建一个index.php,测试是否解析
[root@gaosh-1 html]# cat index.php
<?php phpinfo(); ?>我们在网页端执行,看看会不会被解析:
解析成功,apache调用了模块进行了解析
3. 修改文件名测试
接着我们来改一下文件名字L:把index.php 改为index.php.aaa
[root@gaosh-1 html]# mv index.php index.php.aaa
测试:
还是可以解析,证明不管php是不是在最后面,哪怕在中间,也能被解析
4. 用文件名不包含php的文件测试
我们再次修改文件名,这次不要出现php
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取)
笔者福利
以下是小编自己针对马上即将到来的金九银十准备的一套“面试宝典”,不管是技术还是HR的问题都有针对性的回答。
有了这个,面试踩雷?不存在的!
回馈粉丝,诚意满满!!!
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!
链图片转存中…(img-KUxyOwVU-1713399552093)]
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!