Nginx 解析漏洞复现

系统:Windows10 21H1 专业版
软件:PHPstudy 2018 官网直接下载(http://public.xp.cn/upgrades/PhpStudy2018.zip )
PHPstudy内部php版本:5.2.17+NGINX1.11.5

  1. 压缩图片,尽量10KB以内

  2. 打开HxD或者WinHex向文件尾部加上<?php phpinfo();?>,类似于下图

  1. 放入phpstudy网站根目录



  1. 打开网页,输入localhost和照片路径

  1. 在后面加上个不存在的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 的版本号无关

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值