Nginx + PHP CGI的一个可能的安全漏洞

  • 时间:
  • 浏览:2
  • 来源:5分11选5-5分3D平台_5分6合网投平台
作者:匿名 hihi 来源:ChinaZ源码报导 浏览: 2011-12-29 15:36:42 字号:大 中 小

[摘要]Nginx 是有另另一个高性能的 HTTP 和 反向代理 服务器,也是有另另一个 IMAP/POP3/SMTP 代理服务器。本文介绍Nginx + PHP CGI的有另另一个完后 的安全漏洞。

  现在普遍的Nginx + PHP cgi的做法是在配置文件中,通过正则匹配设置SCRIPT_FILENAME,今天又发现了有另另一个你这俩法律土方法的安全漏洞。比如,有http://www.chinaz.com/fake.jpg,这么 通过构造如下的URL,就还能不能看后fake.jpg的二进制内容:

http://www.chinaz.com/fake.jpg/foo.php

为哪些会这么 呢?比如,如下的nginx conf:

location ~ \.php($|/) {

     fastcgi_pass   127.0.0.1:9000;

     fastcgi_index  index.php;

 

     set $script    $uri;

     set $path_info "";

     if ($uri ~ "^(.+\.php)(/.*)") {

          set  $script     $1;

          set  $path_info  $2;

     }

 

     include       fastcgi_params;

     fastcgi_param SCRIPT_FILENAME   $document_root$script;

     fastcgi_param SCRIPT_NAME       $script;

     fastcgi_param PATH_INFO         $path_info;

}

  通过正则匹配完后 ,SCRIPT_NAME会被设置为"fake.jpg/foo.php",继而构造成SCRIPT_FILENAME传递个PHP CGI,或者PHP又为哪些会接受这么 的参数,或者把a.jpg解析呢?

  这就要说到PHP的cgi SAPI中的参数,fix_pathinfo了:

; cgi.fix_pathinfo provides *real* PATH_INFO/PATH_TRANSLATED support for CGI.  PHP's

; previous behaviour was to set PATH_TRANSLATED to SCRIPT_FILENAME,and to not grok

; what PATH_INFO is. For more information on PATH_INFO,see the cgi specs. Setting

; this to 1 will cause PHP CGI to fix it's paths to conform to the spec. A setting

; of zero causes PHP to behave as before. Default is 1. You should fix your scripts

; to use SCRIPT_FILENAME rather than PATH_TRANSLATED.

cgi.fix_pathinfo=1

  完后 开启了你这俩选项,这么 就会触发在PHP中的如下逻辑:

/*

* if the file doesn't exist,try to extract PATH_INFO out

* of it by stat'ing back through the '/'

* this fixes url's like /info.php/test

*/

if (script_path_translated &&

     (script_path_translated_len = strlen(script_path_translated)) > 0 &&

     (script_path_translated[script_path_translated_len-1] == '/' ||

....//以下省略.

  到这里,PHP会认为SCRIPT_FILENAME是fake.jpg,而foo.php是PATH_INFO,或者PHP就把fake.jpg当作有另另一个PHP文件来解释执行…什么都你这俩隐患的危害是巨大的。对于你这俩论坛来说,完后 上传有另另一个图片(实际上是恶意的PHP脚本),继而构造这么 的访问请求。

  什么都,我们完后 有用你这俩服务器搭配的,请排查,完后 有隐患,请把fix_pathinfo设置为0关闭(默认是开启的)。设置为

另: 我认为你这俩和Nginx没啥关系,不属于Nginx的漏洞. 是配置的问題,现在到处须要说是Nginx的Bug,不妥不妥.

sssss
Tags: nginx   nginx漏洞   php漏洞   cgi漏洞  
责任编辑:190

猜你喜欢

视觉中国再声明:通过合作伙伴获得“黑洞”照片编辑类使用授权

IT之家4月11日消息 4月10日晚间,人类首张黑洞照片问世,这张照片也在网上瞬间刷屏,但有外国网民 称,视觉中国可能在国内背熟了这张黑洞图片的版权,用作商业用途将被追究赔偿

2019-12-06

王建宙:运营商应履行社会责任 ICT为最重要手段

作者:蒋均牧C114中国通信网 CNETNews.com.cn2010-05-1721:05:02 C114讯5月17日晚间消息(蒋均牧)中国移动通信集团公司(下称“中

2019-12-06

字节跳动组织架构揭秘:106位高管首曝光

声明:本文来自于微信公众号量子位(ID:QbitAI),作者:安妮,授权站长之家转载发布。字节跳动,抖音、今日头条、橘子 视频身后的母公司。仅去年一年,这家靠AI算法驱动的公

2019-12-06

外媒:加密媒体出版物BreakerMagazine即将关闭

图片版权所属:站长之家今日块讯(ChinaZ.com)4月50日消息:据外媒报道,加密媒体出版物BreakerMagazine即将关闭。BreakerMagazine由Sing

2019-12-06

三星 NF1 微单机身图片,高清细节图,三星 NF1 微单机身图片大全

关于亲戚亲戚朋友|广告服务|使用条款|联系亲戚亲戚朋友北京盛拓优讯信息技术有限公司.版权所有中华人民共和国增值电信业务经营许可证编号:京B2-20170206北京市公安局海淀分

2019-12-06