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

IIS短文件名泄露漏洞复现

IIS短文件名泄露漏洞复现

  • 前言
  • 一、漏洞描述
  • 二、漏洞原理
    • 1.什么是短文件
    • 2.短文件特征
  • 三、漏洞验证
  • 三、漏洞防御
  • 总结


前言

IIS短文件名泄露漏洞比较老了,而且只适合于windows+iis+asp的网络结构,所有如下的复现步骤看下就行了,关键是要弄懂原理


一、漏洞描述

此漏洞实际是由HTTP请求中旧DOS 8.3名称约定(SFN)的代字符(~)波浪号引起的。它允许远程攻击者在Web根目录下公开文件和文件夹名称(不应该可被访问)。攻击者可以找到通常无法从外部直接访问的重要文件,并获取有关应用程序基础结构的信息

二、漏洞原理

1.什么是短文件

为了兼容16位MS-DOS程序,Windows为文件名较长的文件(和文件夹)生成了对应的windows 8.3短文件名。在Windows下查看对应的短文件名,可以使用命令dir /x,具体如下:

在这里插入图片描述

2.短文件特征

  1. 只显示前6位的字符,后续字符用~1代替。其中数字1是可以递增。如果存在文件名类似的文件,则前面的6个字符是相同的,后面的数字进行递增
  2. 后缀名最长只有3位,超过3位的会生成短文件名,且后缀多余的部分会截断。
  3. 所有小写字母均转换成大写的字母
  4. 长文件名中包含多个”.”的时候,以文件最后一个”.”作为短文件名的后缀
  5. 长文件名前缀/文件夹名字符长度符合0-9和A-Z、a-z范围且需要大于等于9位才会生成短文件名,如果包含空格或者其他部分特殊字符,不论长度均会生成短文件。

三、漏洞验证

漏洞验证的原理就是,访问存在的短文件返回404,访问不存在的短文件返回400

import requestsheaders = {"User-Agent": "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) ""Chrome/116.0.0.0 Mobile Safari/537.36 Edg/116.0.1938.69 "
}
urls = []
with open('iis.txt', 'r') as fp:contens = fp.readlines()
for item in contens:response1 = requests.get(f"{item}*~1****/a.aspx")response2 = requests.get(f"{item}l1j1e*~1****/a.aspx")print(response1)if response1.status_code == 404 and response2.status_code == 400:print(item)

其中iis.txt中放url

三、漏洞防御

  1. 升级.net framework
  2. 修改注册表键值:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem
    修改NtfsDisable8dot3NameCreation为1。修改完成后,需要重启系统生效
  3. 重启系统之后,在网站根目录(C:\Inetpub\wwwroot)下创建hhhhhhhhhhhhhhhhhhhh.txt,然后查看是否会生成短文件名。下图可以看到,没有生成短文件名,说明防御生效。

总结

该漏洞的意义:

1、 猜解后台地址

2、 猜解敏感文件,例如备份的rar、zip、.bak、.sql文件等。

3、 在某些情形下,甚至可以通过短文件名web直接下载对应的文件。

该漏洞的局限性:

1、 只能猜解前六位,以及扩展名的前三位。

2、 名称较短的文件是没有相应的短文件名的。

3、 不支持中文文件名

4、 如果文件名前6位带空格,8.3格式的短文件名会补进,和真实文件名不匹配

5、 需要IIS和.net两个条件都满足。

相关文章:

IIS短文件名泄露漏洞复现

IIS短文件名泄露漏洞复现 前言一、漏洞描述二、漏洞原理1.什么是短文件2.短文件特征 三、漏洞验证三、漏洞防御总结 前言 IIS短文件名泄露漏洞比较老了,而且只适合于windowsiisasp的网络结构,所有如下的复现步骤看下就行了,关键是要弄懂原理…...

万字解读 Android 车机核心 :CarService 的构成和链路~

前言 关于 Android 车机,之前分析过方控上自定义按键的输入机制和中控上旋钮输入的原理,但都局限于 Car Service 内 Input 相关模块。 一文了解 Android 车机如何处理中控的旋钮输入从实体按键看 Android 车载的自定义事件机制 本文将结合 Android 系…...

C#使用Panel

using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System...

Jabbi的Rust学习日记(一)

Rust环境安装 Windows:Install Rust - Rust Programming Language (rust-lang.org) 访问网页,下载64bit | 32bit 版本 下载完成后打开,直接enter即可 Linux:输入指令 curl https://sh.rustup.rs-sSf | sh 我会报错,好像是链接不到这个网址&a…...

电脑磁盘分区形式是什么?如何更改?

磁盘分区形式介绍 在了解为什么以及如何更改分区形式之前,让我们对磁盘分区形式有一个基本的了解。一般来说,分区形式是指主引导记录(MBR)和 GUID 分区表(GPT)。 MBR和GPT是Windows系统中常用…...

Outlook无需API开发连接钉钉群机器人,实现新增会议日程自动发送群消息通知

Outlook用户使用场景: 在企业中,会议和活动的顺利举行对于业务运转和团队协作至关重要。然而,计划的变动总是无法避免,这可能会导致其他人的计划受到影响,打乱原有的安排。为了解决这个问题,许多企业开始使…...

elasticsearch分析插件 安装analysis-ik

首先下载安装es 和 插件 ,注意 两者的版本要保持一致,如果要用到kibana 则三者保持一致 ik:https://github.com/medcl/elasticsearch-analysis-ik/releases es/kibana:https://www.elastic.co/cn/downloads/past-releases/ 然后在 es— elast…...

2023年股票大宗减持研究报告

第一章 股票大宗减持概述 1.1 概念 大宗减持是指通过大宗交易的方式进行减持,即达到规定的最低限额的证券单笔买卖申报,买卖双方经过协议达成一致并经交易所确定成交的证券交易,其中A股单笔交易数量在30万股(含)以上…...

VS编译.cu文件源文件无法打开matrix.h和mex.h问题

配置好cu和VS相关库文件后CUDA程序仍然报错:无法打开matrix.h和mex.h,解决办法: (1)这两个头文件是matlab中的,可能无法直接在VS中调用,可以通过添加外部依赖项的方法将matlab中的头文件的文件路…...

小bugs搜集和解决方法,亲测有效(2022-2023)

有些小bugs几行指令就能解决,写太多不好,这里就进行一个2022-2023这段时间的bugs collection和solution。 Deep Learning How to make really empty tensor? a nn.Torch([]) b torch.empty(2,3) for i in rang(3):a torch.cat(a, b, dim0)Mismatc…...

归并排序和快速排序的两种实现

在此之前我们已经介绍过归并排序和快速排序:浅谈归并排序与快速排序,但其中的实现都是基于递归的。本文将重新温故这两种算法并给出基于迭代的实现。 目录 1. 归并排序1.1 基于递归1.2 基于迭代 2. 快速排序2.1 基于递归2.2 基于迭代 1. 归并排序 1.1 基…...

C#,《小白学程序》第十四课:随机数(Random)第一,几种随机数的计算方法与代码

1 文本格式 /// <summary> /// 《小白学程序》第十四课&#xff1a;随机数&#xff08;Random&#xff09;第一&#xff0c;几种随机数的计算方法与代码 /// 本课初步接触一下随机数。 /// </summary> /// <param name"sender"></param> ///…...

[杂谈]-快速了解Modbus协议

快速了解Modbus协议 文章目录 快速了解Modbus协议1、为何 Modbus 如此受欢迎2、范围和数据速率3、逻辑电平4、层数5、网络与通讯6、数据帧格式7、数据类型8、服务器如何存储数据9、总结 ​ Modbus 是一种流行的低速串行通信协议&#xff0c;广泛应用于自动化行业。 该协议由 Mo…...

WhatsApp的两个商业模式该如何选择

WhatsApp Business 是什么 目前 WhatsApp 提供两种商业模式&#xff0c;企业应根据自身需求选择相应版本。 第一个版本是 WhatsApp Business&#xff1a;初创企业只需一个手机应用程序&#xff0c;便可以个体单位与客户轻松互动; 另一个版本是 WhatsApp Business API&#xff…...

动态表单设计

动态表单设计 背景方案讨论基于上面分析&#xff0c;对比调研&#xff0c;自定义动态表单数据模型表单详解&#xff08;一&#xff09; 表单模板&#xff1a;jim_dynamic_form&#xff08;二&#xff09;表单数据类型&#xff1a;jim_form_data_type&#xff08;三&#xff09;…...

JAR will be empty - no content was marked for inclusion!

现象 在对自建pom依赖组件打包时&#xff0c;出现JAR will be empty - no content was marked for inclusion!错误。 方案 在pom中怎么加packaging标签内容为pom&#xff0c;标识只打包pom文件 <?xml version"1.0" encoding"UTF-8"?> ...<grou…...

软件生命周期及流程【软件测试】

软件的生命周期 软件生命周期是软件开始研制到最终被废弃不用所经历的各个阶段。 瀑布型生命周期模型 规定了它们自上而下、相互衔接的固定次序&#xff0c;如同瀑布流水&#xff0c;逐级下落&#xff0c;具有顺序性和依赖性。每个阶段规定文档并需进行评审。 特点&#xff…...

2023高教社杯数学建模E题思路代码 - 黄河水沙监测数据分析

# 1 赛题 E 题 黄河水沙监测数据分析 黄河是中华民族的母亲河。研究黄河水沙通量的变化规律对沿黄流域的环境治理、气候变 化和人民生活的影响&#xff0c; 以及对优化黄河流域水资源分配、协调人地关系、调水调沙、防洪减灾 等方面都具有重要的理论指导意义。 附件 1 给出了位…...

双翌保养码使用指南方法(一)

保养码使用指南一 为了确保软件的正常运行和有效使用&#xff0c;正确地使用保养码是至关重要的。以下是保养码使用的简单指南&#xff0c;以帮助您进行正确的操作。 1. 打开软件入口&#xff1a;首先&#xff0c;在您的电脑上打开文件夹&#xff0c;并找到s-y softactive tool…...

hive指定字段插入数据,包含了分区表和非分区表

1、建表 语句如下&#xff1a; CREATE EXTERNAL TABLE ods_lineitem_full (l_shipdate date,l_orderkey bigint,l_linenumber int,l_partkey int,l_suppkey int,l_quantity decimal(15, 2),l_extendedprice decimal(15, 2),l_discount de…...

UE5 学习系列(二)用户操作界面及介绍

这篇博客是 UE5 学习系列博客的第二篇&#xff0c;在第一篇的基础上展开这篇内容。博客参考的 B 站视频资料和第一篇的链接如下&#xff1a; 【Note】&#xff1a;如果你已经完成安装等操作&#xff0c;可以只执行第一篇博客中 2. 新建一个空白游戏项目 章节操作&#xff0c;重…...

IDEA运行Tomcat出现乱码问题解决汇总

最近正值期末周&#xff0c;有很多同学在写期末Java web作业时&#xff0c;运行tomcat出现乱码问题&#xff0c;经过多次解决与研究&#xff0c;我做了如下整理&#xff1a; 原因&#xff1a; IDEA本身编码与tomcat的编码与Windows编码不同导致&#xff0c;Windows 系统控制台…...

《Qt C++ 与 OpenCV:解锁视频播放程序设计的奥秘》

引言:探索视频播放程序设计之旅 在当今数字化时代,多媒体应用已渗透到我们生活的方方面面,从日常的视频娱乐到专业的视频监控、视频会议系统,视频播放程序作为多媒体应用的核心组成部分,扮演着至关重要的角色。无论是在个人电脑、移动设备还是智能电视等平台上,用户都期望…...

Matlab | matlab常用命令总结

常用命令 一、 基础操作与环境二、 矩阵与数组操作(核心)三、 绘图与可视化四、 编程与控制流五、 符号计算 (Symbolic Math Toolbox)六、 文件与数据 I/O七、 常用函数类别重要提示这是一份 MATLAB 常用命令和功能的总结,涵盖了基础操作、矩阵运算、绘图、编程和文件处理等…...

推荐 github 项目:GeminiImageApp(图片生成方向,可以做一定的素材)

推荐 github 项目:GeminiImageApp(图片生成方向&#xff0c;可以做一定的素材) 这个项目能干嘛? 使用 gemini 2.0 的 api 和 google 其他的 api 来做衍生处理 简化和优化了文生图和图生图的行为(我的最主要) 并且有一些目标检测和切割(我用不到) 视频和 imagefx 因为没 a…...

基于SpringBoot在线拍卖系统的设计和实现

摘 要 随着社会的发展&#xff0c;社会的各行各业都在利用信息化时代的优势。计算机的优势和普及使得各种信息系统的开发成为必需。 在线拍卖系统&#xff0c;主要的模块包括管理员&#xff1b;首页、个人中心、用户管理、商品类型管理、拍卖商品管理、历史竞拍管理、竞拍订单…...

基于Springboot+Vue的办公管理系统

角色&#xff1a; 管理员、员工 技术&#xff1a; 后端: SpringBoot, Vue2, MySQL, Mybatis-Plus 前端: Vue2, Element-UI, Axios, Echarts, Vue-Router 核心功能&#xff1a; 该办公管理系统是一个综合性的企业内部管理平台&#xff0c;旨在提升企业运营效率和员工管理水…...

HubSpot推出与ChatGPT的深度集成引发兴奋与担忧

上周三&#xff0c;HubSpot宣布已构建与ChatGPT的深度集成&#xff0c;这一消息在HubSpot用户和营销技术观察者中引发了极大的兴奋&#xff0c;但同时也存在一些关于数据安全的担忧。 许多网络声音声称&#xff0c;这对SaaS应用程序和人工智能而言是一场范式转变。 但向任何技…...

AI语音助手的Python实现

引言 语音助手(如小爱同学、Siri)通过语音识别、自然语言处理(NLP)和语音合成技术,为用户提供直观、高效的交互体验。随着人工智能的普及,Python开发者可以利用开源库和AI模型,快速构建自定义语音助手。本文由浅入深,详细介绍如何使用Python开发AI语音助手,涵盖基础功…...

DeepSeek源码深度解析 × 华为仓颉语言编程精粹——从MoE架构到全场景开发生态

前言 在人工智能技术飞速发展的今天&#xff0c;深度学习与大模型技术已成为推动行业变革的核心驱动力&#xff0c;而高效、灵活的开发工具与编程语言则为技术创新提供了重要支撑。本书以两大前沿技术领域为核心&#xff0c;系统性地呈现了两部深度技术著作的精华&#xff1a;…...