在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 相关文章推荐
iis下php mail函数的sendmail配置方法(官方推荐)
Apr 25 PHP
php后退一页表单内容保存实现方法
Jun 17 PHP
深入PHP操作MongoDB的技术总结
Jun 02 PHP
Php header()函数语法及使用代码
Nov 04 PHP
PhpDocumentor 2安装以及生成API文档的方法
May 21 PHP
mac下Apache + MySql + PHP搭建网站开发环境
Jun 02 PHP
php找出指定范围内回文数且平方根也是回文数的方法
Mar 23 PHP
Zend Framework教程之Zend_Helpers动作助手ViewRenderer用法详解
Jul 20 PHP
总结PHP删除字符串最后一个字符的三种方法
Aug 30 PHP
PHP反射API示例分享
Oct 08 PHP
php curl中gzip的压缩性能测试实例分析
Nov 08 PHP
thinkphp的dump函数无输出实例代码
Nov 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在Windows 9x/NT下的安装与配置 (一)
2006/10/09 PHP
模拟flock实现文件锁定
2007/02/14 PHP
PHP文件缓存内容保存格式实例分析
2014/08/20 PHP
php设计模式之备忘模式分析【星际争霸游戏案例】
2020/03/24 PHP
新闻内页-JS分页
2006/06/07 Javascript
对象的类型:本地对象(1)
2006/12/29 Javascript
[转]JS宝典学习笔记
2007/02/07 Javascript
Sample script that displays all of the users in a given SQL Server DB
2007/06/16 Javascript
javascript面向对象之对象的深入理解
2015/01/13 Javascript
JavaScript中iframe实现局部刷新的几种方法汇总
2016/01/06 Javascript
js创建jsonArray传输至后台及后台全面解析
2016/04/11 Javascript
Bootstrap轮播插件简单使用方法介绍
2016/06/21 Javascript
浅谈JavaScript的函数及作用域
2016/12/30 Javascript
基于Bootstrap的Java开发问题汇总(Spring MVC)
2017/01/15 Javascript
详解vue-cli 构建Vue项目遇到的坑
2017/08/30 Javascript
SeaJS中use函数用法实例分析
2017/10/10 Javascript
angularJs提交文本框数据到后台的方法
2018/10/08 Javascript
JavaScript静态作用域和动态作用域实例详解
2019/06/17 Javascript
[54:41]2018DOTA2亚洲邀请赛3月30日 小组赛B组 VGJ.T VS paiN
2018/03/31 DOTA
python导出hive数据表的schema实例代码
2018/01/22 Python
Python对CSV、Excel、txt、dat文件的处理
2018/09/18 Python
Django项目中实现使用qq第三方登录功能
2019/08/13 Python
Pycharm pyuic5实现将ui文件转为py文件,让UI界面成功显示
2020/04/08 Python
python 解决pycharm运行py文件只有unittest选项的问题
2020/09/01 Python
Python中对象的比较操作==和is区别详析
2021/02/12 Python
使用HTML5的File实现base64和图片的互转
2013/08/01 HTML / CSS
HTML5拖拽功能实现的拼图游戏
2018/07/31 HTML / CSS
质检的岗位职责
2013/11/17 职场文书
运动会通讯稿400字
2014/01/28 职场文书
师德师风建设方案
2014/05/08 职场文书
科级干部群众路线教育实践活动对照检查材料思想汇报
2014/09/20 职场文书
2015感人爱情寄语
2015/02/26 职场文书
初一英语教学反思
2016/02/15 职场文书
2016年党员岗位承诺书
2016/03/24 职场文书
Python实现滑雪小游戏
2021/09/25 Python
聊聊Lombok中的@Builder注解使用教程
2021/11/17 Java/Android