在PHP中使用FastCGI解析漏洞及修复方案


Posted in PHP onNovember 10, 2015

漏洞描述:

Nginx默认是以CGI的方式支持PHP解析的,普遍的做法是在Nginx配置文件中通过正则匹配设置SCRIPT_FILENAME。当访问http://192.168.1.102/phpinfo.jpg/1.php这个URL时,$fastcgi_script_name会被设置为“phpinfo.jpg/1.php”,然后构造成SCRIPT_FILENAME传递给PHP CGI。如果PHP中开启了fix_pathinfo这个选项,PHP会认为SCRIPT_FILENAME是phpinfo.jpg,而1.php是PATH_INFO,所以就会将phpinfo.jpg作为PHP文件来解析了。

漏洞危害:

WebServer Fastcgi配置不当,会造成其他文件(例如css,js,jpg等静态文件)被当成php脚本解析执行。当用户将恶意脚本webshell改为静态文件上传到webserver传递给后端php解析执行后,会让攻击者获得服务器的操作权限。

修复方案:

(Nginx用户可以选择方案一或方案二,IIS用户请使用方案一)

方案一,修改php.ini文件,将cgi.fix_pathinfo的值设置为0。完成后请重启PHP和NGINX(IIS)。

方案二,在Nginx配置文件中添加以下代码:

if ( $fastcgi_script_name ~ \..*\/.*php ) {

return 403;

}

这行代码的意思是当匹配到类似test.jpg/a.php的URL时,将返回403错误代码。修改完成后请重启Nginx。

PHP 相关文章推荐
织梦模板标记简介
Mar 11 PHP
比较全的PHP 会话(session 时间设定)使用入门代码
Jun 05 PHP
用php实现让页面只能被百度gogole蜘蛛访问的方法
Dec 29 PHP
关于PHP中Object对象的笔记分享
Jun 28 PHP
Android ProgressBar进度条和ProgressDialog进度框的展示DEMO
Jun 19 PHP
PHP array_multisort() 函数的深入解析
Jun 20 PHP
CodeIgniter中实现泛域名解析
Jul 19 PHP
PHP调试函数和日志记录函数分享
Jan 31 PHP
[原创]PHP字符串中插入子字符串方法总结
May 06 PHP
PHP socket 模拟POST 请求实例代码
Jul 18 PHP
PHP简单判断手机设备的方法
Aug 23 PHP
Yii框架数据模型的验证规则rules()被执行的方法
Dec 02 PHP
PHP中使用GD库绘制折线图 折线统计图的绘制方法
Nov 09 #PHP
再推荐十款免费的php开发工具
Nov 09 #PHP
php开发工具有哪五款
Nov 09 #PHP
PHP编程开发怎么提高编程效率 提高PHP编程技术
Nov 09 #PHP
PHP 7的一些引人注目的新特性简单介绍
Nov 08 #PHP
php实现mysql数据库连接操作及用户管理
Nov 08 #PHP
php实现处理输入转义字符的代码
Nov 08 #PHP
You might like
一个php作的文本留言本的例子(五)
2006/10/09 PHP
跨浏览器PHP下载文件名中的中文乱码问题解决方法
2015/03/05 PHP
PHP递归调用数组值并用其执行指定函数的方法
2015/04/01 PHP
laravel 中如何使用ajax和vue总结
2017/08/16 PHP
jWiard 基于JQuery的强大的向导控件介绍
2011/10/28 Javascript
jquery访问ashx文件示例代码
2014/08/11 Javascript
jquery中change()用法实例分析
2015/02/06 Javascript
jQuery中prepend()方法使用详解
2015/08/11 Javascript
jQuery实现的网页左侧在线客服效果代码
2015/10/23 Javascript
JavaScript禁止复制与粘贴的实现代码
2016/05/16 Javascript
原生js实现新闻列表展开/收起全文功能
2017/01/20 Javascript
使用原生js写ajax实例(推荐)
2017/05/31 Javascript
JS实现按钮颜色切换效果
2020/09/05 Javascript
基于vue 实现token验证的实例代码
2017/12/14 Javascript
vue使用高德地图根据坐标定位点的实现代码
2019/08/22 Javascript
通过js实现压缩图片上传功能
2020/02/25 Javascript
Vue实现图书管理案例
2021/01/20 Vue.js
[01:44]Ti10举办地公布
2019/08/25 DOTA
Python提示[Errno 32]Broken pipe导致线程crash错误解决方法
2014/11/19 Python
理解Python中的绝对路径和相对路径
2017/08/30 Python
pygame实现雷电游戏雏形开发
2018/11/20 Python
Python matplotlib绘制饼状图功能示例
2019/09/10 Python
postman和python mock测试过程图解
2020/02/22 Python
python实现将字符串中的数字提取出来然后求和
2020/04/02 Python
Django中使用Json返回数据的实现方法
2020/06/03 Python
Python classmethod装饰器原理及用法解析
2020/10/17 Python
乐天旅游台湾网站:Rakuten Travel TW
2017/06/01 全球购物
ZWILLING双立人英国网上商店:德国刀具锅具厨具品牌
2018/05/15 全球购物
印度购买眼镜和太阳镜网站:Coolwinks
2018/09/26 全球购物
凌阳科技股份有限公司C++程序员面试题笔试题
2014/11/20 面试题
自荐信模版
2013/10/24 职场文书
关于幼儿的自我评价
2013/12/18 职场文书
党员个人公开承诺书
2014/08/29 职场文书
党的群众路线教育实践活动对照检查材料范文
2014/09/24 职场文书
面试通知短信
2015/04/20 职场文书
倡议书范文大全
2015/04/28 职场文书