【文件上传绕过】——解析漏洞_IIS7.0 | IIS7.5 | Nginx的解析漏洞

简介: 【文件上传绕过】——解析漏洞_IIS7.0 | IIS7.5 | Nginx的解析漏洞

文章目录
一、实验目的:
二、工具:
三、实验环境:
四、漏洞说明:
1.  nginx解析漏洞(实验环境:Nginx1.4.6 ):
1.1 原理:
1.2 漏洞形式:
1.3 另外两种解析漏洞:
2. IIS7.0 | 7.5解析漏洞:
2.1 原理:
2.2 漏洞形式:
五、环境准备:
1. 安装 XAMPP环境:
2. 安装IIS服务器:
2.1 安装步骤:
2.2 验证安装成功与否:
2.3 验证能否正常执行asp的脚本文件:
3. 环境配置:
3.1 配置:
3.2 验证PHP脚本能否执行:
六、实验步骤:
七、漏洞防御:
一、实验目的:
1、通过本次实验学习漏洞产生的成因。
2、通过搭建漏洞环境,学习绕过技巧。

二、工具:
火狐/谷歌浏览器

三、实验环境:
靶 机: windows Sever 2008 R2 x64虚拟机:192.168.15.142
     xampp-win32-5.6.28-1-VC11-installer集成环境
     IIS7.0服务器

攻击机: 物理机
点我下载XAMPP安装包提取码:jake

四、漏洞说明:
1.  nginx解析漏洞(实验环境:Nginx1.4.6 ):
1.1 原理:
  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。
  这其中涉及到php的一个选项:cgi.fix_pathinfo,该值默认为1,表示开启。开启这一选项PHP可以对文件路径进行修理。
  举个例子,当php遇到文件路径/1.jpg/2.txt/3.php时,若/1.jpg/2.txt/3.php不存在,则会去掉最后的/3.php,然后判断/1.jpg/2.txt是否存在,若存在,则把/1.jpg/2.txt当做文件/1.jpg/2.txt/3.php,若/1.jpg/2.txt仍不存在,则继续去掉/2.txt,以此类推。

1.2 漏洞形式:
www.xxxxx.com/UploadFiles/image/1.jpg/1.php

1.3 另外两种解析漏洞:
www.xxxxx.com/UploadFiles/image/1.jpg%00.php
www.xxxxx.com/UploadFiles/image/1.jpg/%20\0.php

2. IIS7.0 | 7.5解析漏洞:
2.1 原理:
IIS7.5 IIS7.0的漏洞与nginx的类似,都是由于php配置文件中,开启了cai.fix_pathinfo,而这并不是nginx或者IIS7.0 | 7.5本身的漏洞。

2.2 漏洞形式:
www.xxxxx.com/UploadFiles/image/1.jpg/1.php

五、环境准备:
1. 安装 XAMPP环境:
安装XAMPP环境原因:
主要是为了能够在IIS服务器里面使用它的php模块。
1、双击安装包,进行安装,后面安装按照图片操作即可:

这里默认安装在C:/盘,可自定义:

点击Next后,会弹出浏览器,关闭即可:

2、安装图中操作即可:

3、在这个页面等待安装完毕,安装完成退出即可:

4、出现这个页面,会让我们选择安装环境语言,默认英语即可:

5、出现下面情况,按照图中操作即可

6、出现下面弹窗,退出即可,至此安装完毕:

2. 安装IIS服务器:
2.1 安装步骤:
1、点击任务栏的"服务器管理"进入以下页面,安装下图操作即可:

2、这里需要选择安装的服务器,根据自己需要进行安装,这里只安装IIS服务器,接着按照下图操作即可:

3、选择安装网站的一些功能服务,安装下图操作即可:

4、出现以下页面,等待安装结束后,选择关闭即可,至此IIS服务器安装完毕:

5、查看网站主目录位置:

2.2 验证安装成功与否:
1、验证安装成功与否,查看ip:

2、访问服务器,出现以下页面说明安装完成,可以正常访问:

2.3 验证能否正常执行asp的脚本文件:
1、删除原有的文件及目录:

2、给wwwroot目录进行授权,操作如下即可:

3、按照下图操作即可,然后一直确定退出:

4、在网站主目录下,创建一个1.asp的脚本文件:

内容:

<%=now()%>
1

5、在物理机里面访问这个页面,可以正常执行:

3. 环境配置:
3.1 配置:
1、给IIS服务器添加PHP模块,让它可以正常执行PHP脚本,操作步骤如下:

2、后退,进入主页面,设置FastCGI模块:

3、选中PHP配置文件:

4、确定,退出即可,至此,IIS服务器已经可以正常执行PHP脚本文件:

3.2 验证PHP脚本能否执行:
1、创建一个1.php脚本文件:
内容:

<?php phpinfo(); ?>
1

2、访问1.php页面,可以正常解析为php脚本文件:

3、通过以上操作,就是为了让网站在遇到php脚本文件时,服务器把php脚本交给fastcgi模块处理,找到xmapp中的php模块,让网站能够正常解析php代码。

六、实验步骤:
1、在网站主目录放一个图片马我a.jpg:
内容:

<?php phpinfo(); ?>
1

2、正常访问,默认以图片查看器的方式进行打开,没有解析为php脚本:

3、在后面随便添加一个/*.php,这里是加了一个/qwer.php,被解析为了php脚本文件:

IIS服务器解析漏洞处理过程:
当IIS服务器遇到文件路径/a.jpg/qwer.php时,若/a.jpg/qwer.php不存在,则会去掉最后的/qwer.php,然后判断/a.jpg是否存在,该目录下/a.jpg存在,由于服务器配置不当,造成了服务器把a.jpg当做 了php脚本执行了。

七、漏洞防御:
1、通过下面设置,进行防御IIS7.0 IIS7.5 的解析漏洞:

2、通过上面设置,再次访问,发现已经不能再解析了:

文章知识点与官方知识档案匹配,可进一步学习相关知识
————————————————

                        版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

原文链接:https://blog.csdn.net/weixin_45588247/article/details/118889668

目录
相关文章
|
存储 前端开发 JavaScript
调用DeepSeek API增强版纯前端实现方案,支持文件上传和内容解析功能
本方案基于DeepSeek API增强版,提供纯前端实现的文件上传与内容解析功能。通过HTML和JavaScript,用户可选择文件并调用API完成上传及解析操作。方案支持多种文件格式(如PDF、TXT、DOCX),具备简化架构、提高响应速度和增强安全性等优势。示例代码展示了文件上传、内容解析及结果展示的完整流程,适合快速构建高效Web应用。开发者可根据需求扩展功能,满足多样化场景要求。
3611 64
|
开发框架 安全 .NET
文件上传绕过】——解析漏洞_IIS6.0解析漏洞
文件上传绕过】——解析漏洞_IIS6.0解析漏洞
778 4
|
JSON 应用服务中间件 API
使用 Gin 框架实现文件上传:机制与深入解析
使用 Gin 框架实现文件上传:机制与深入解析
|
应用服务中间件 测试技术 nginx
Nginx入门 -- 解析Nginx中的基本概念:Keepalive
Nginx入门 -- 解析Nginx中的基本概念:Keepalive
761 0
|
9月前
|
网络安全 Windows
Windows IIS 10如何配置自签名SSL并实现自动跳转
本文记录了IIS配置自签名证书及HTTPS跳转的注意事项。包括解决443端口占用问题、URL Rewrite插件安装与配置、web.config修改方法,以及避免因旧教程导致的配置错误。
Windows IIS 10如何配置自签名SSL并实现自动跳转
|
网络协议
windows_server2012搭建iis并配置http重定向 iis转发
windows_server2012搭建iis并配置http重定向 iis转发
886 1
【Azure云服务 Cloud Service】如何在部署云服务Cloud Service时候通过启动任务Start Task来配置IIS (如开启ARR)
【Azure云服务 Cloud Service】如何在部署云服务Cloud Service时候通过启动任务Start Task来配置IIS (如开启ARR)
323 2
|
开发框架 .NET 中间件
【Azure 云服务】在Cloud Service的代码中如何修改IIS Application Pool的配置呢? 比如IdleTimeout, startMode, Recycling.PeriodicRestart.Time等
【Azure 云服务】在Cloud Service的代码中如何修改IIS Application Pool的配置呢? 比如IdleTimeout, startMode, Recycling.PeriodicRestart.Time等
295 0
【Azure 云服务】在Cloud Service的代码中如何修改IIS Application Pool的配置呢? 比如IdleTimeout, startMode, Recycling.PeriodicRestart.Time等
|
Windows
iis配置http重定向302转发get请求并去掉最后的斜杠/ iis重定向 iis去除url最后的斜杠 iis重定向链接斜杠(已解决)
iis配置http重定向302转发get请求并去掉最后的斜杠/ iis重定向 iis去除url最后的斜杠 iis重定向链接斜杠(已解决)
1121 0