iis常见漏洞(中间件常见漏洞)
Posted 一青一柠
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了iis常见漏洞(中间件常见漏洞)相关的知识,希望对你有一定的参考价值。
目录
1.IIS 6.x 解析漏洞
(1) 该版本默认会将*.asp;.jpg 此种格式的文件名,当成Asp解析,原理是服务器默认不解析;号及其后面的内容,相当于截断。
(2)该版本默认会将*.asp/目录下的所有文件当成Asp解析。
修复:微软认为这不是一个漏洞,所以要自己修复。
- 限制上传目录执行权限,不允许执行脚本。
- 不允许新建目录。
- 上传的文件经过重命名
(3)llS6.x除了会将扩展名为.asp的文件解析为asp之外,还默认会将扩展名为.asa,.cdx,.cer解析为asp,
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4sbKYX9S-1660731137895)(C:\\Users\\25764\\AppData\\Roaming\\Typora\\typora-user-images\\image-20220817095101981.png)]
2. IIS 7.x 解析漏洞
(1)在一个文件路径(/xx.jpg)后面加上/xx.php会将/xx.jpg/xx.php 解析为 php 文件。
上传phpinfo的文件,命名为test.png,正常情况下不解析。但在后面加 /.php ,就可以以php格式运行。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QTnxxUxU-1660731137896)(C:\\Users\\25764\\AppData\\Roaming\\Typora\\typora-user-images\\image-20220817095919146.png)]
但有的时候会显示404,原因是先提条件需关闭phpStudy_FastCGI中的请求限制。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rJ10Yj6m-1660731137896)(C:\\Users\\25764\\AppData\\Roaming\\Typora\\typora-user-images\\image-20220817100649586.png)]
修复建议:
配置cgi.fix_pathinfo(php.ini中)为0(默认情况下值为1)并重启php-cgi程序。
3. HTTP.SYS远程代码执行漏洞MS15-034
漏洞概述
1.读取内存
2.dos攻击
远程执行代码漏洞存在于 HTTP
协议堆栈 HTTP.sys
中,Http.sys
是Microsoft Windows
处理HTTP
请求的内核驱动程序。当 HTTP.sys
错误解析经特殊构造的 HTTP
请求时会导致此漏洞。
成功利用此漏洞的攻击者可以在系统帐户的上下文中执行任意代码,可以远程读取IIS
服务器的内存数据,或使服务器系统蓝屏崩溃。此漏洞并不是针对IIS
的,而是针对Windows
操作系统的,主要影响了包括Windows 7、Windows Server 2008 R2、Windows 8、Windows Server 2012、Windows 8.1 和 Windows Server 2012 R2
在内的主流服务器操作系统。
MS15-034
漏洞指纹
通过在数据包的请求头上添加一串数据
Range: bytes=0-18446744073709551615
1)浏览器测试
在火狐浏览器中,按如下图片进行操作,将上述数据添加进请求头中,重发
返回状态码为416
,Requested Range Not Satisfiable
,表示存在HTTP.SYS远程代码执行漏洞
2)Kali上使用curl测试
使用下面的curl
指令,添加请求头数据进行数据请求
curl http://192.168.31.84 -H "Host: 192.168.31.84" -H "Range: bytes=0-18446744073709551615"
返回Requested Range Not Satisfiable
,且状态码为416
,表示存在该漏洞
执行攻击操作
内存读取、dos攻击
1)读取服务器内存数据
使用msf
的auxiliary/scanner/http/ms15_034_http_sys_memory_dump
模块
设置相关信息,执行exploit
,成功得到内存数据
2)进行ddos攻击
使用msf
的auxiliary/dos/http/ms15_034_ulonglongadd
模块,序号为0
设置相关信息,exploite
执行
查看IIS
服务器,发现已经蓝屏了,说明攻击成功。
4. IIS-PUT任意文件写入
漏洞描述:
IIS在网站拓展服务中开启了WebDAV,配合写入权限,存在PUT任意文件写入漏洞
测试环境:
WinSrv2003 IIS6.0
漏洞要求:
1.开启WebDAV,设置为允许
2.网站配置写入权限
测试:
使用BP进行抓包,将GET请求修改为OPTIONS进行发送,返回了WebDAV所支持的多种请求
修改为PUT请求,创建一个2.txt文件,并写入内容
成功创建写入文件
修复建议:
关闭WebDAV拓展
禁止网站写入权限
5. 短文件名漏洞
IIS 的短文件名机制,可以暴力猜解短文件名,访问构造的某个存在的短文件名,会返回404,访问构造的某个不存在的短文件名,返回400。
然后根据猜解的短文件名。继续通过其他方法猜文件名全名。
总结
该漏洞的意义:
1、 猜解后台地址
2、 猜解敏感文件,例如备份的rar、zip、.bak、.sql文件等。
3、 在某些情形下,甚至可以通过短文件名web直接下载对应的文件。
该漏洞的局限性:
1、 只能猜解前六位,以及扩展名的前三位。
2、 名称较短的文件是没有相应的短文件名的。
3、 不支持中文文件名
4、 如果文件名前6位带空格,8.3格式的短文件名会补进,和真实文件名不匹配
5、 需要IIS和.net两个条件都满足。
常见 Web 中间件及其漏洞概述:IIS
目录
PUT漏洞
漏洞原理
IIS Server 在 Web 服务扩展中开启了 WebDAV之后,支持多种请求,配合写入权限,可造成任意文件写入。
WebDav(Web-based Distributed Authoring and Versioning)是一种基于HTTP 1.1协议的通信协议,它扩展了HTTP协议,在GET、POST、HEAD等几个HTTP标准方法外添加了一些新的方法。
复现
Win 2003 + IIS 6.0
修复
关闭WebDAV 和 写权限
短文件名猜解
Windows 以 8.3 格式生成与 MS-DOS 兼容的(短)文件名,以允许基于 MS-DOS 或 16 位 Windows的程序访问这些文件。在cmd下输入"dir /x"即可看到短文件名的效果。
漏洞原理
IIS的短文件名机制,可以暴力猜解短文件名,访问构造的某个存在的短文件名,会返回404,访问构造的某个不存在的短文件名,返回400。
IIS短文件名产生
1.当后缀小于4时,短文件名产生需要文件(夹)名前缀字符长度大于等于9位。
2.当后缀大于等于4时,文件名前缀字符长度即使为1,也会产生短文件名。
目前IIS支持短文件名猜测的HTTP方法主要包括:DEBUG、OPTIONS、GET、POST、HEAD、TRACE六种。 IIS 8.0之后的版本只能通过OPTIONS和TRACE方法被猜测成功。
复现
IIS8.0以下版本需要开启ASP.NET支持,IIS大于等于8.0版本,即使没有安装ASP.NET,通过OPTIONS和TRACE方法也可以猜解成功。 以下通过开启IIS6.0 ASP.NET后进行复现。
猜解格式:
http://192.168.11.148/短文件名/.aspx -> 短文件名格式:*~*
当访问构造的某个存在的短文件名,会返回404
当访问构造的某个不存在的短文件名,会返回400
短文件漏洞的局限性
1.如果文件名本身太短也是无法猜解的。
2.此漏洞只能确定前6个字符,如果后面的字符太长、包含特殊字符,很难猜解。
3.如果文件名前6位带空格,8.3格式的短文件名会补进,和真实文件名不匹配。
4.如果文件夹名前6位字符带点".",扫描程序会认为是文件而不是文件夹,最终出现误报。
5.不支持中文文件名,包括中文文件和中文文件夹。一个中文相当于两个英文字符,故超过4个中文字会产生短文件名,但是IIS不支持中文猜测。
IIS短文件名扫描工具
https://github.com/irsdl/IIS-ShortName-Scanner
修复
1.从CMD命令关闭NTFS 8.3文件格式的支持
Windows Server 2003: (1代表关闭,0代表开启)
关闭该功能:fsutil behavior set disable8dot3 1
Windows Server 2008 R2:
查询是否开启短文件名功能:fsutil 8dot3name query
关闭该功能:fsutil 8dot3name set 1
不同系统关闭命令稍有区别,该功能默认是开启的.
2.从修改注册表关闭NTFS 8.3文件格式的支持
快捷键Win+R打开命令窗口,输入regedit打开注册表窗口
找到路径: HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Control\\FileSystem,将其中的 NtfsDisable8dot3NameCreation这一项的值设为 1,1代表不创建短文件名格式。
注:
以上两种方式修改完成后,均需要重启系统生效。
Note:此方法只能禁止NTFS8.3格式文件名创建,已经存在的文件的短文件名无法移除,需要重新复制才会消失。 例:将web文件夹的内容拷贝到另一个位置,如c:\\www到c:\\ww,然后删除原文件夹,再重命名c:\\ww到c:\\www。
远程代码执行
解析漏洞
IIS 6.0
测试代码:
<%
response.write(now())
%>
基于文件名
只要文件名中包含有 .asp .asa .cer .cdx 会优先按照 asp 格式来解析。 eg:Test.asp;.jpg
原理:IIS服务器默认不解析; 号及其后面的内容,相当于截断。
基于目录名
如果目录名以 .asp .asa .cer .cdx 字符串结尾,那么这个目录下的所有文件都会按照 asp 格式去解析。 eg:Test.asp/Test.jpg
IIS 7.0/7.5
IIS7.0/7.5 是对 php 解析时有一个类似 Nginx 的解析漏洞,对任意文件名只要在 URL 后追加上字符串 /任意文件名.php 就会按照 php 的方式去解析。
该漏洞适用于 IIS7.x版本 在Fast-CGI运行模式下。
eg:http://www.test.com/Test/test.txt/xx.php
IIS PHP文件解析配置
复现
漏洞修复
配置 cgi.fix_pathinfo(php.ini中) 为 0 并重启 php-cgi 程序
以上是关于iis常见漏洞(中间件常见漏洞)的主要内容,如果未能解决你的问题,请参考以下文章