在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读取IMAP邮件
Oct 09 PHP
IIS下配置Php+Mysql+zend的图文教程
Dec 08 PHP
mysql 全文搜索 技巧
Apr 27 PHP
php中的MVC模式运用技巧
May 03 PHP
php AJAX实例根据邮编自动完成地址信息
Nov 23 PHP
PHP判断是否为空的几个函数对比
Apr 21 PHP
php使用MySQL保存session会话的方法
Jun 18 PHP
Smarty使用自定义资源的方法
Aug 08 PHP
CI框架源码解读之利用Hook.php文件完成功能扩展的方法
May 18 PHP
PHP那些琐碎的知识点(整理)
May 20 PHP
详解如何在云服务器上部署Laravel
Jun 30 PHP
PHP实现转盘抽奖算法分享
Apr 15 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
apache+php+mysql安装配置方法小结
2010/08/01 PHP
使用PHP静态变量当缓存的方法
2013/11/13 PHP
PHP COOKIE及时生效的方法介绍
2014/02/14 PHP
深入理解PHP中的Streams工具
2015/07/03 PHP
php基于openssl的rsa加密解密示例
2016/07/11 PHP
CodeIgniter框架常见用法工作总结
2017/03/16 PHP
两个SUBMIT按钮,如何区分处理
2006/08/22 Javascript
Js 冒泡事件阻止实现代码
2013/01/27 Javascript
js兼容的placeholder属性详解
2013/08/18 Javascript
javascript中in运算符用法分析
2015/04/28 Javascript
JS控制表单提交的方法
2015/07/09 Javascript
jQuery的内容过滤选择器学习教程
2016/04/18 Javascript
AngularJs实现分页功能不带省略号的代码
2016/05/30 Javascript
JS中常用的输出方式(五种)
2016/06/12 Javascript
AngularJS $injector 依赖注入详解
2016/09/14 Javascript
浅谈angularjs module返回对象的坑(推荐)
2016/10/21 Javascript
Bootstrap媒体对象学习使用
2017/03/07 Javascript
vue2.0的contextmenu右键弹出菜单的实例代码
2017/07/24 Javascript
Vue.js 实现微信公众号菜单编辑器功能(一)
2018/05/08 Javascript
小程序实现页面顶部选项卡效果
2018/11/06 Javascript
Node.js 路由的实现方法
2019/06/05 Javascript
[40:03]RNG vs VG 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/17 DOTA
Python 异常处理的实例详解
2017/09/11 Python
Python2包含中文报错的解决方法
2018/07/09 Python
django实现HttpResponse返回json数据为中文
2020/03/27 Python
解析HTML5中的新功能本地存储localStorage
2016/03/01 HTML / CSS
鱼油专家:Omegavia
2016/10/10 全球购物
物流仓储实习自我鉴定
2013/09/25 职场文书
公益活动策划方案
2014/01/09 职场文书
宠物店的创业计划书范文
2014/01/11 职场文书
医学生自我评价
2014/01/27 职场文书
吨的认识教学反思
2014/04/27 职场文书
医院搬迁方案
2014/06/14 职场文书
青春励志演讲稿范文
2014/08/25 职场文书
怎样写离婚协议书
2014/09/10 职场文书
一文简单了解MySQL前缀索引
2022/04/03 MySQL