Apache后缀名解析漏洞分析和防御方法
我们都知道windows2003 + IIS6.0下,如果目录结构中有xxx.asp这样的目录,那么所有这个目录下的文件不管扩展名为什么,都会当作asp来解析。我们一般称这个漏洞为windows2003+iis6.0目录解析漏洞。但是大家可能不知道的是,apache服务器也存在类似的解析漏洞。
我们来做下实验,我在本地搭建好了一个apache+php的测试平台:
两个文件phpinfo.php phpinfo.php.a ,我们来访问下phpinfo.php.a:
http://192.168.99.110/phpinfo.php.a
可以解析,换成其他后缀仍然可以。
不管文件最后后缀为什么,只要是.php.*结尾,就会被Apache服务器解析成php文件,问题是apache如果在mime.types文件里面没有定义的扩展名在诸如x1.x2.x3的情况下,最后一个x3的没有定义,他会给解析成倒数第二个的x2的定义的扩展名。所以xxx.php.rar或者xxx.php.111这些默认没在mime.types文件定义的都会解析成php的。同样如果是cgi或者jsp也一样。。。
那么如果涉及到web程序的上传页面,如果上传的文件名是我们可以定义的,那么我们完全可以上传一个xxx.php.jpg这样名字的webshell,apache仍然会当作php来解析,我们再来测试下jpg。
防御方法:apache配置文件,禁止.php.这样的文件执行,配置文件里面加入。
<Files ~ "\.(php.php3.)">
Order Allow,Deny
Deny from all
</Files>
保存,从起apache以后,我们再来看看。
OK,防御方法就是这样。
相关推荐
-
php5系列的apache远程执行漏洞攻击脚本
php5.x系列/apache远程执行漏洞及攻击脚本以下为相关代码,请文明使用... 复制代码 代码如下: /* Apache Magica by Kingcope *//* gcc apache-magika.c -o apache-magika -lssl *//* This is a code execution bug in the combination of Apache and PHP.On debian and Ubuntu the vulnerability is presen
-
Apache后缀名解析漏洞分析和防御方法
我们都知道windows2003 + IIS6.0下,如果目录结构中有xxx.asp这样的目录,那么所有这个目录下的文件不管扩展名为什么,都会当作asp来解析.我们一般称这个漏洞为windows2003+iis6.0目录解析漏洞.但是大家可能不知道的是,apache服务器也存在类似的解析漏洞. 我们来做下实验,我在本地搭建好了一个apache+php的测试平台: 两个文件phpinfo.php phpinfo.php.a ,我们来访问下phpinfo.php.a: http://192.168.
-
CSRF跨站请求伪造漏洞分析与防御
目录 CSRF 漏洞原理 漏洞危害 防御绕过 漏洞利用 防御措施 总结 CSRF 现在的网站都有利用CSRF令牌来防止CSRF,就是在请求包的字段加一个csrf的值,防止csrf,要想利用该漏洞,要和xss组合起来,利用xss获得该csrf值,在构造的请求中将csrf值加进去,就可以绕过csrf防御,利用该漏洞. 该漏洞与xss的区别:xss是通过执行恶意脚本,获取到用户的cookie等信息,再利用cookie等信息进行绕过登录限制,做一些用户可以做的事. 而csrf是伪造请求,让用户自己执行攻
-
C#获取图片的后缀名解析
要说,这也是一个很简单的功能,没必要开一篇博客这么大动干戈. 对于一张知道全路径的照片,如果其路径包含后缀名的话,要取得后缀名,只需要一行代码即可: 复制代码 代码如下: var ext = System.IO.Path.GetExtension("C:\\soar.jpg"); 可是,如果这个文件的文件名不包含后缀怎么办? 在C#中并没有提供直接获取图片格式的方法,如果想根据图片(也就是Image对象)获取图片格式,那么就需要另辟蹊径了. 首先,我们可以在`Image`对象中看到一个
-
apache后缀名支持 让apache支持apk ipk下载的方法
mime.types 文件在\conf\目录里面,添加如下内容: 复制代码 代码如下: text/vnd.sun.j2me.app-descriptor jad; application/java-archive jar war ear; application/x-java-archive-diff jardiff; application/vnd.android.package-archive apk; application/vnd.ms-cab-compressed cab; appli
-
php一行代码获取文件后缀名实例分析
本文实例讲述了php一行代码获取文件后缀名的方法.分享给大家供大家参考.具体方法分析如下: php中一行代码获取文件后缀名的方法要结合很多的函数了,我们这个有点像asp中的函数了,下面来一起看看吧. 实例: 复制代码 代码如下: $filename = 'D:/wamp/www/sparkphp/rar'; $rs = strtolower(trim(substr(strrchr($filename, "."), 1))); 详解: strrchr()函数查找字符串在另一个字符串中
-
SpringCloud Function SpEL注入漏洞分析及环境搭建
目录 SpringCloud Function 介绍 漏洞环境搭建 SpEL注入 漏洞复现 原理分析 补丁分析 引用 SpringCloud Function 介绍 SpringCloud 是一套分布式系统的解决方案,常见的还有阿里巴巴的Dubbo,Fass(Function As A Service )的底层实现就是函数式编程,在视频转码.音视频转换.数据仓库ETL等与状态相关度低的领域运用的比较多.开发者无需关注服务器环境运维等问题上,专注于自身业务逻辑实现即可. SpringCloud F
-
浅谈web上存漏洞及原理分析、防范方法(文件名检测漏洞)
我们通过前篇:<浅谈web上存漏洞及原理分析.防范方法(安全文件上存方法)>,已经知道后端获取服务器变量,很多来自客户端传入的.跟普通的get,post没有什么不同.下面我们看看,常见出现漏洞代码.1.检测文件类型,并且用用户上存文件名保存 复制代码 代码如下: if(isset($_FILES['img'])){ $file = save_file($_FILES['img']); if($file===false) exit('上存失败!'); echo "上存成功!&qu
-
php 文件上传后缀名与文件类型对照表(几乎涵盖所有文件)
网上有很多php文件上传的类,文件上传处理是php的一个特色(至少手册上是将此作为php特点来展示的,个人认为php在数组方面的优异功能更有特色),学php的人都知道文件上传怎么做,但很多人在编程中却可能忽视了一些细节问题,那就是文件的类型(MIME).在表单将文件提交给php做处理之前,浏览器会先解析识别一边是什么类型的文件,之后进入php处理环节,php又会去识别解析此文件的原始类型(并不是说你改成什么后缀就是什么文件).在这个过程中会有一些浏览器兼容,更准确来说是文件类型解析标识不一致的问
-
javascript 得到文件后缀名的思路及实现
对于一个带绝对路径的文件名如:D:\Program Files\Notepad++\Notepad++.exe首先为了避免转义反斜杠出问题,可以用正则表达式来将\或\\替换成#,如:D:#Program Files#Notepad++#Notepad++.exe之后以'#'为分隔符,将字符串分解成数组,得到如下数组:D: ProgramFiles Notepad++ Notepad++.exe取数组的最后一个即为带后缀的文件名:Notepad++.exe再以'.'为分隔符,将这个带后缀的文
-
PHP程序漏洞产生的原因分析与防范方法说明
滥用include 1.漏洞原因: Include是编写PHP网站中最常用的函数,并且支持相对路径.有很多PHP脚本直接把某输入变量作为Include的参数,造成任意引用脚本.绝对路径泄露等漏洞.看以下代码: ... $includepage=$_GET["includepage"]; include($includepage); ... 很明显,我们只需要提交不同的Includepage变量就可以获得想要的页面.如果提交一个不存在的页面,就可以使PHP脚本发生错误而泄露实际绝对路径(
随机推荐
- 微信小程序城市定位的实现实例(获取当前所在国家城市信息)
- jQuery $.each遍历对象、数组用法实例
- Java 类型相互转换byte[]类型,Blob类型详细介绍
- JS实现弹出下载对话框及常见文件类型的下载
- 实现文件和文件夹的复制的方法
- .net数据库连接池配置技巧(默认值)
- 深入解析Python中的lambda表达式的用法
- safari,opera嵌入iframe页面cookie读取问题解决方法
- 基于jQuery的判断iPad、iPhone、Android是横屏还是竖屏的代码
- 收藏的精美的Flash 透明背景 提供下载
- JQuery 学习技巧总结
- jquery struts 验证唯一标识(公用方法)
- 解决Vue编译时写在style中的路径问题
- JS实现淘宝幻灯片效果的实现方法
- ES6学习教程之块级作用域详解
- javascript禁制后退键(Backspace)实例代码
- C#自定义签名章实现方法
- C#中委托(Delegates)的使用方法详解
- PHP生成指定随机字符串的简单实现方法
- Android实现图片压缩示例代码