在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 相关文章推荐
实战mysql导出中文乱码及phpmyadmin导入中文乱码的解决方法
Jun 11 PHP
探讨PHP函数ip2long转换IP时数值太大产生负数的解决方法
Jun 06 PHP
IIS+fastcgi下PHP运行超时问题的解决办法详解
Jun 20 PHP
php 过滤英文标点符号及过滤中文标点符号代码
Jun 12 PHP
php隐藏实际地址的文件下载方法
Apr 18 PHP
PHP7.0版本备注
Jul 23 PHP
PHP代码实现表单数据验证类
Jul 28 PHP
yii2 页面底部加载css和js的技巧
Apr 21 PHP
php文件上传后端处理小技巧
May 22 PHP
彻底搞懂PHP 变量结构体
Oct 11 PHP
PHP四种排序算法实现及效率分析【冒泡排序,插入排序,选择排序和快速排序】
Apr 27 PHP
解决Laravel 不能创建 migration 的问题
Oct 09 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
为查询结果建立向后/向前按钮
2006/10/09 PHP
PHP实现单文件、多个单文件、多文件上传函数的封装示例
2019/09/02 PHP
jQuery判断密码强度实现思路及代码
2013/04/24 Javascript
使用javascript做的一个随机点名程序
2014/02/13 Javascript
推荐10 个很棒的 jQuery 特效代码
2015/10/04 Javascript
jQuery实现文本框邮箱输入自动补全效果
2015/11/17 Javascript
javascript点击按钮实现隐藏显示切换效果
2016/02/03 Javascript
基于javascript实现句子翻牌网页版小游戏
2016/03/23 Javascript
jQuery Mobile框架中的表单组件基础使用教程
2016/05/17 Javascript
如何实现json数据可视化详解
2016/11/24 Javascript
jquery中$.fn和图片滚动效果实现的必备知识总结
2017/04/21 jQuery
浅谈React前后端同构防止重复渲染
2018/01/05 Javascript
layui框架table 数据表格的方法级渲染详解
2018/08/19 Javascript
VUE简单的定时器实时刷新的实现方法
2019/01/20 Javascript
jQuery高级编程之js对象、json与ajax用法实例分析
2019/11/01 jQuery
pip安装Python库时遇到的问题及解决方法
2017/11/23 Python
详解利用django中间件django.middleware.csrf.CsrfViewMiddleware防止csrf攻击
2018/10/09 Python
python 读取文件并把矩阵转成numpy的两种方法
2019/02/12 Python
python3实现斐波那契数列(4种方法)
2019/07/15 Python
浅析python 中大括号中括号小括号的区分
2019/07/29 Python
python获取Pandas列名的几种方法
2019/08/07 Python
提升python处理速度原理及方法实例
2019/12/25 Python
关于python中导入文件到list的问题
2020/10/31 Python
Python+Xlwings 删除Excel的行和列
2020/12/19 Python
IE支持HTML5的解决方法
2009/10/20 HTML / CSS
欧洲最大的高尔夫零售商:American Golf
2019/09/02 全球购物
中学家长会邀请函
2014/02/03 职场文书
日化店促销方案
2014/03/26 职场文书
党员大会主持词
2014/04/02 职场文书
大专生自荐书范文
2014/06/22 职场文书
2014年最新大专生职业生涯规划书范文
2014/09/13 职场文书
党员干部批评与自我批评反四风思想汇报
2014/09/21 职场文书
2014教师评职称工作总结
2014/11/10 职场文书
分析设计模式之模板方法Java实现
2021/06/23 Java/Android
Python进行区间取值案例讲解
2021/08/02 Python
Python Django / Flask如何使用Elasticsearch
2022/04/19 Python