然后加入/.php
成功执行phpinfo();
漏洞分析
这是我的生产环境,根据漏洞特性,大概率就是fastcgi的问题。
查看该站点相关的nginx的配置文件
可见 这里的正则处理,将文件传递给fastcgi处理,$fastcgi_script_name会被设置为1.png/.php,然后构造成SCRIPT_FILENAME传递给PHP CGI。如果PHP中开启了fix_pathinfo这个选项,PHP会认为SCRIPT_FILENAME是1.png,而.php是PATH_INFO,所以就会将1.jpg作为PHP文件来解析了。
处于好奇心去观察一下php的配置