在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 相关文章推荐
由php的call_user_func传reference引发的思考
Jul 23 PHP
PHP的变量总结 新手推荐
Apr 18 PHP
解析php中eclipse 用空格替换 tab键
Jun 24 PHP
深入解析PHP中的(伪)多线程与多进程
Jul 01 PHP
ThinkPHP写数组插入与获取最新插入数据ID实例
Nov 03 PHP
thinkphp特殊标签用法概述
Nov 24 PHP
新浪SAE搭建PHP项目教程
Jan 28 PHP
PHP中使用curl入门教程
Jul 02 PHP
php链表用法实例分析
Jul 09 PHP
Yii数据库缓存实例分析
Mar 29 PHP
thinkPHP5框架实现多数据库连接,跨数据连接查询操作示例
May 29 PHP
Smarty模板变量与调节器实例详解
Jul 20 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中将时间差转换为字符串提示的实现代码
2011/08/08 PHP
腾讯QQ微博API接口获取微博内容
2013/10/30 PHP
PHP的邮件群发系统phplist配置方法详细总结
2016/03/30 PHP
JScript中的undefined和"undefined"的区别
2007/03/08 Javascript
类似CSDN图片切换效果脚本
2009/09/17 Javascript
JavaScript 读取元素的CSS信息的代码
2010/02/07 Javascript
js 面向对象的技术创建高级 Web 应用程序
2010/02/25 Javascript
jquery批量控制form禁用的代码
2013/08/06 Javascript
深入学习JavaScript对象
2015/10/13 Javascript
利用JS实现数字增长
2016/07/28 Javascript
原生JS实现自定义滚动条效果
2020/10/27 Javascript
jQuery 导航自动跟随滚动的实现代码
2018/05/30 jQuery
浅谈vue首屏加载优化
2018/06/28 Javascript
jQuery实现模糊搜索功能的方法分析
2018/06/29 jQuery
小程序实现选择题选择效果
2018/11/04 Javascript
Angular PWA使用的Demo示例
2019/01/31 Javascript
详解Nodejs get获取远程服务器接口数据
2019/03/26 NodeJs
webpack3.0升级4.0的方法步骤
2020/04/02 Javascript
js实现微信聊天界面
2020/08/09 Javascript
python利用拉链法实现字典方法示例
2017/03/25 Python
python模块smtplib学习
2018/05/22 Python
Python几种常见算法汇总
2020/06/02 Python
python 求两个向量的顺时针夹角操作
2021/03/04 Python
深入剖析HTML5 内联框架iFrame
2016/05/04 HTML / CSS
Surfdome西班牙:世界上最受欢迎的生活方式品牌
2019/02/13 全球购物
Volcom英国官方商店:美国殿堂级滑板、冲浪、滑雪服装品牌
2019/03/13 全球购物
发展部经理职责规定
2014/02/22 职场文书
合伙协议书
2014/04/23 职场文书
北京故宫的导游词
2015/01/31 职场文书
放假通知
2015/04/14 职场文书
2015年乡镇纪检工作总结
2015/04/22 职场文书
幼师辞职信范文大全
2015/05/12 职场文书
英语投诉信范文
2015/07/03 职场文书
PyTorch的Debug指南
2021/05/07 Python
Apache Hudi的多版本清理服务彻底讲解
2022/03/31 Servers
Java基础——Map集合
2022/04/01 Java/Android