坚信科学,分享技术

2018全新版本,未来在blog.54chen.com更新博客!

>>>尝试更加利于阅读的2014版科学院,以后都在新版上写。

[警示]Nginx + PHP CGI的安全漏洞:fix_pathinfo

php漏洞

如果你正在使用nginx+php,请关注。

表像:

具体的重现过程,用php代码修改后缀名后上传,比如说www.xxx.com/1.jpg,访问的时候用www.xxx.com/1.jpg/xxx.php

这段jpg代码将会被执行!!!

http://docs.php.net/manual/zh/ini.core.php
cgi.fix_pathinfo "1" PHP_INI_ALL 从 PHP 4.3.0 起可用 请注意:默认为1

解决办法:
1.修改php.ini中的cgi.cgi.fix_pathinfo为0(即使你在php.ini中没有搜到,也要设置,没有搜到表示默认为1
2.判断文件上传类型时使用严格的判断,至于怎么判断,参见:http://www.54chen.com/php-tech/php-upload-file-types-to-determine-the-complete-program-and-php-nginx-upload-size-and-complete-control-program.html
3.把nginx的判断正则修改为去除/
if ( $fastcgi_script_name ~ \..*\/.*php ) {
return 403;
}

鸟哥在http://www.laruence.com/2010/05/20/1495.html一文中提及此事。


原创文章如转载,请注明:转载自五四陈科学院[http://www.54chen.com]
本文链接: http://www.54chen.com/php-tech/nginx-php-cgi-of-security-hole.html

This entry was posted in php and tagged , . Bookmark the permalink.

3 Responses to “[警示]Nginx + PHP CGI的安全漏洞:fix_pathinfo”

  1. aa 说:

    你这个没有上传的时候就不能让他上传

  2. [...] 这两天nginx的0day闹的沸沸扬扬,好不热闹。在陈科学院处得到这个消息后,以迅雷不及掩耳盗铃之势将线上的服务器check一遍。本着把八卦进行到底的精神,周未两天继续来八一八这个所谓的0day。 [...]

Leave a Reply