前言
影响版本:Nginx 0.8.41 到 1.4.3 / 1.5.0 到 1.5.7。
利用条件:php-fpm.conf中的security.limit_extensions为空。
建议在学习该漏洞前先学习nginx的原理:https://zhuanlan.zhihu.com/p/136801555。
security.limit_extensions设置了就只能解析指定后缀的文件,为空可以解析所有后缀文件。
漏洞原理
首先来看nginx解析php文件的配置信息:
location ~ .php$ {
include fastcgi_params;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /var/www/html$fastcgi_script_name;
fastcgi_param DOCUMENT_ROOT /var/www/html;
}
该配置文件大概意思就是匹配以.php
结尾的文件,然后把这个文件当成php来执行。众所周知正则匹配遇到