phpStudy nginx 解析漏洞

本文探讨了2017年发现的Nginx文件解析漏洞,通过实例展示了如何利用xxx.png/xxx.php格式触发漏洞。当cgi.fix_pathinfo选项开启时,Nginx将.jpg文件误解析为php并尝试执行。尽管新版PHP的security.limit_extensions限制了这种情况,但通过修改配置文件仍可能使.jpg成为合法php后缀,从而成功执行代码。此漏洞主要由Nginx的php配置不正确引起,而非Nginx本身的问题。

此漏洞爆出的是早在2017年就爆出的nginx 文件解析漏洞

 

利用方式:

xxx.png/xxx.php

首先准备文件11.png,内容为:

  <?php phpinfo() ?>

在浏览器中访问 http://127.0.0.1/11.png 显示图片解析错误。在浏览器中访问http://127.0.0.1/11.png/.php ,显示:“Access denied.” 。这就有意思了,test.jpg是文件不是目录,test.php更是根本就不存在的文件,访问/test.jpg/test.php没有报404,而是显示“Access denied.” 。

Nginx拿到文件路径(更专业的说法是URI)/test.jpg/test.php后,一看后缀是.php,便认为该文件是php文件,转交给php去处理。php一看/test.jpg/test.php不存在,便删去最后的/test.php,又看/test.jpg存在,便把/test.jpg当成要执行的文件了,又因为后缀为.jpg,php认为这不是php文件,于是返回“Access denied.”。

CGI公共网关接口

这其中涉及到php的一个选项:cgi.fix_pathinfo,该值默认为1,表示开启。开启这一选项有什么用呢?看名字就知道是对文件路径进行“修理”。何谓“修理”?举个例子,当php遇到文件路径“/aaa.xxx/bbb.yyy/ccc.zzz”时

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ATOM_123

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值