一、首先明确:IIS 解析漏洞的核心场景(常见但非全部)

解析漏洞的本质是IIS 对请求文件的 “后缀解析逻辑异常”,导致本应作为静态文件(如图片、文本)的资源被当作动态脚本(如 ASP、ASPX)执行,进而引发远程代码执行(RCE)。这类漏洞在旧版本 IIS 中尤为突出,典型场景如下:

漏洞类型影响版本核心原理示例场景
目录解析漏洞IIS 5.x / 6.0若目录名以.asp结尾(如test.asp/),IIS 会将该目录下所有文件当作 ASP 脚本解析。攻击者上传test.asp/1.jpg(实际是 ASP 恶意代码),IIS 会执行该文件中的脚本。
文件解析漏洞(分号截断)IIS 5.x / 6.0IIS 解析文件时会忽略 “分号(;)” 后的内容,仅识别分号前的后缀作为脚本类型。上传malicious.asp;.jpg,IIS 会忽略.jpg,将其当作malicious.asp执行。
FastCGI 配置解析漏洞IIS 7.x+(搭配 PHP)若 FastCGI 配置中cgi.fix_pathinfo=1(默认开启),且未限制 URL 重写,IIS 会错误解析 URL 中的 “伪后缀”。请求http://xxx.com/test.jpg/index.php,IIS 会将test.jpg当作 PHP 脚本执行。

二、IIS 其他常见漏洞类型(非解析漏洞)

除了解析漏洞,IIS 的漏洞更多源于配置不当、协议实现缺陷或模块漏洞,部分漏洞的危害甚至高于解析漏洞(如远程代码执行、服务器劫持)。

1. 配置类漏洞(最易忽略,影响范围广)

这类漏洞并非 IIS 本身的代码缺陷,而是管理员部署时的配置错误导致,几乎所有 IIS 版本都可能受影响:

  • 目录浏览漏洞

    • 原理:若 IIS 未禁用 “目录浏览” 功能,且目标目录下无默认文档(如index.aspdefault.aspx),IIS 会直接返回目录内的文件列表(含文件名、修改时间、大小)。
    • 危害:泄露网站目录结构、敏感文件路径(如数据库备份、配置文件),为后续攻击提供信息支撑。
  • 默认文档 / 虚拟目录风险

    • 原理:保留 IIS 默认页面(如iisstart.aspwelcome.png)或默认虚拟目录(如/IISHelp//WebDAV/),这些默认资源可能存在已知漏洞;或虚拟目录权限配置过高(如允许写入)。
    • 危害:攻击者利用默认资源的漏洞入侵,或通过高权限虚拟目录上传恶意文件。
  • 未禁用不必要的模块

    • 原理:启用了未使用的危险模块(如 WebDAV、FrontPage Server Extensions),这些模块本身可能存在漏洞(如 WebDAV 的缓冲区溢出)。
    • 示例:IIS 6.0 默认启用 WebDAV,若未禁用,可能被利用发起 CVE-2017-7269 等漏洞攻击。

2. 认证与授权漏洞

IIS 作为 Web 服务器,需处理用户认证逻辑,若实现不当会导致权限绕过或身份窃取:

  • NTLM 中继攻击(Windows 集成认证)

    • 影响版本:所有支持 “Windows 集成认证” 的 IIS 版本(依赖 Windows 的 NTLM 协议)。
    • 原理:攻击者拦截客户端的 NTLM 认证流量,中继到目标 IIS 服务器,伪装客户端获取访问权限(无需破解密码)。
    • 危害:绕过身份验证,访问受保护的 Web 资源(如内网管理后台)。
  • 表单认证会话漏洞

    • 影响版本:IIS 7.x+(使用ASP.NET表单认证时)。
    • 原理:会话 Cookie 未设置HttpOnly/Secure标志,或会话 ID 未及时失效,导致攻击者通过 XSS 劫持会话,或重放会话 ID 冒充登录用户。

3. 服务端协议 / 模块漏洞(可直接远程代码执行)

这类漏洞是 IIS 底层代码或依赖模块的缺陷,危害极高,常被用于直接入侵服务器:

  • HTTP.sys 远程代码执行漏洞

    • 典型 CVE:CVE-2015-1635(“BadTunnel”)、CVE-2021-31166。
    • 影响版本:IIS 7.0+(依赖 Windows 的 HTTP.sys 驱动,该驱动负责处理 HTTP 请求)。
    • 原理:HTTP.sys 在处理特殊构造的 HTTP 请求(如畸形的Range头、Accept-Encoding头)时存在缓冲区溢出或内存 corruption,攻击者可发送恶意请求执行任意代码。
    • 危害:无需认证,远程直接控制服务器(如植入木马、窃取数据)。
  • IIS 6.0 WebDAV 缓冲区溢出漏洞(CVE-2017-7269)

    • 影响版本:IIS 6.0(已停止支持,但仍有大量老旧服务器在使用)。
    • 原理:WebDAV 模块在处理PROPFIND请求中的If:头时存在缓冲区溢出,攻击者可构造恶意请求触发漏洞,执行任意代码。
    • 危害:直接远程入侵,是老旧 IIS 服务器的 “致命漏洞” 之一。
  • ASP.NET模块漏洞(间接影响 IIS)

    • 典型 CVE:CVE-2019-0708(“BlueKeep”,虽为 RDP 漏洞,但ASP.NET也有类似内存漏洞)、CVE-2022-1899。
    • 原理:IIS 依赖ASP.NET处理动态请求,若ASP.NET框架存在漏洞(如远程代码执行、权限绕过),会间接导致 IIS 受攻击。
    • 示例:攻击者通过访问/aspnet_client/system_web/xxx.aspx触发ASP.NET漏洞,进而控制 IIS 服务器。

4. 其他低危但常见的漏洞

  • HTTP 头注入漏洞:攻击者通过构造畸形的Host头、Referer头,篡改页面内容或欺骗服务器(如缓存投毒)。
  • 日志配置不当:IIS 日志未记录关键信息(如请求参数、用户 IP),或日志文件权限过松导致被篡改,无法追溯攻击行为。
  • MIME 类型配置错误:将可执行脚本(如.exe.bat)配置为 “可下载” 类型,且未限制访问路径,导致攻击者下载服务器敏感程序。

三. IIS 漏洞防护建议

  1. 升级版本:优先使用 IIS 10.0(搭配 Windows Server 2019/2022),停止使用已停止支持的 IIS 5.x/6.0。
  2. 规范配置
    • 禁用 “目录浏览”“WebDAV” 等不必要功能;
    • 删除默认文档(iisstart.asp)和无用虚拟目录;
    • 配置 FastCGI 时关闭cgi.fix_pathinfo=1(针对 PHP)。
  3. 及时打补丁:关注 Windows Update,修复 HTTP.sys、ASP.NET等模块的漏洞(如 CVE-2021-31166)。
  4. 部署防护设备:通过 WAF(Web 应用防火墙)拦截恶意请求(如分号截断的解析漏洞请求、畸形 HTTP 头)。
文章作者: QiaoShen
本文链接:
版权声明: 本站所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 QiaoShen-World
漏洞详解 实景渗透基础 中间件 渗透 姿势
喜欢就支持一下吧