系统:Windows10 21H1 专业版
软件:PHPstudy 2018 官网直接下载(http://public.xp.cn/upgrades/PhpStudy2018.zip )
PHPstudy内部php版本:5.2.17+NGINX1.11.5
-
压缩图片,尽量10KB以内
-
打开HxD或者WinHex向文件尾部加上<?php phpinfo();?>,类似于下图
- 放入phpstudy网站根目录
- 打开网页,输入localhost和照片路径
- 在后面加上个不存在的php文件,就会正常解析了
不正常显示怎么办?
如果不能正常解析,那么就要去php.ini修改cgi.fix_pathinfo
漏洞原理
原理可以说是很好理解, localhost/yello31.gif/xxx.php 本身是不存在的文件,但是它交给了 PHP 进行了处理.
但是 PHP 也找不到,但是由于 cgi.fix_pathinfo = 1 这个配置就会导致 php 往上一个文件里找,直到可以找到的文件.
以此为例 PHP 找到了一个叫 yello31.gif 文件,并不是一个代码文件,这里又要怪 php-fpm.conf 里的 security.limit_extensions 配置,如果为空,那么 PHP 不管什么文件都会执行,这便是典型的配置错误的问题.与 PHP 和 NGINX 的版本号无关