渗透测试之地基服务篇:服务攻防之中间件IIS(上)
字数 1725 2025-08-13 21:33:27
IIS中间件渗透测试技术详解
一、IIS中间件概述
中间件是介于应用系统和系统软件之间的一类软件,它使用系统软件所提供的基础服务(功能),衔接网络上应用系统的各个部分或不同的应用,能够达到资源共享、功能共享的目的。
IIS(Internet Information Services)是微软提供的Web服务器软件,作为关键中间件:
- 连接网络和系统,接触大量关键数据
- 通常连接数据库,存储重要敏感信息
- 一旦被攻破可能导致信息泄露、篡改,造成经济损失或影响企业形象
二、IIS 7.x环境搭建
安装IIS 7.5步骤
- 在Windows 7系统中打开控制面板
- 进入"程序和功能"→"打开或关闭Windows功能"
- 勾选"Internet信息服务"下的所有选项
- 等待安装完成(约1-2分钟)
- 安装完成后打开Internet信息服务(IIS)管理器
- 删除默认网站(Default Web Site)
配置PHP支持
- 下载并安装phpStudy工具
- 选择IIS+PHP版本
- 验证安装:访问phpinfo.php页面确认配置成功
手动配置PHP支持
- 编辑"ISAPI和CGI限制"
- 添加php-cgi.exe路径
- 在"处理程序映射"中添加FastCGI映射
三、IIS 7.x渗透测试技术
1. 解析漏洞
漏洞原理:
IIS 7.x在Fast-CGI运行模式下,在任意文件(如.jpg/.png)后加上/.php,会将文件解析为php执行。
复现步骤:
- 创建包含php代码的图片文件(如dayu.png)
- 访问dayu.png/.php
- 若未解析,检查处理程序映射中的FastCGI设置
- 取消"仅当请求映射至以下内容时才调用处理程序"选项
- 再次访问dayu.png/.php验证解析成功
修复建议:
- 配置php.ini中的cgi.fix_pathinfo=0
- 重启php-cgi程序
2. HTTP.SYS远程代码执行(MS15-034)
漏洞描述:
HTTP协议堆栈(HTTP.sys)未正确分析特殊设计的HTTP请求,导致远程代码执行。
影响版本:
- IIS 7.5、IIS 8.0、IIS 8.5
- Windows 7/8/8.1、Server 2008 R2/2012/2012 R2
检测方法:
- 发送HTTP请求
- 添加请求头:
Range: bytes=0-18446744073709551615 - 若返回416状态码(Requested Range Not Satisfiable),则存在漏洞
修复建议:
安装微软补丁KB3042553
3. 认证绕过漏洞
3.1 安装了PHP的IIS 6.0认证绕过
漏洞利用:
在受保护目录后附加::$INDEX_ALLOCATION可绕过认证
示例:
/admin::$INDEX_ALLOCATION/index.php
3.2 IIS 7.5经典ASP认证绕过
漏洞利用:
在受保护目录后附加:$i30:$INDEX_ALLOCATION可绕过ASP文件访问限制
示例:
/admin:$i30:$INDEX_ALLOCATION/index.asp
3.3 IIS 7.5 .NET源代码泄露和认证绕过
漏洞利用:
http://<target>/admin:$i30:$INDEX_ALLOCATION/admin.php
复现步骤(IIS 7.5):
- 创建需要认证的admin目录
- 配置目录访问需要认证
- 正常访问返回401未授权
- 使用绕过技术访问敏感信息
组合利用技巧:
结合解析漏洞和认证绕过漏洞:
/admin:$i30:$INDEX_ALLOCATION/index.aspx/.php
防护措施:
- 配置.NET Framework 2.0可防止经典ASP认证绕过
- 限制攻击者获取受保护目录信息
四、WebDAV配置与测试
- 安装WebDAV功能
- 启用WebDAV
- 使用扫描工具检测PUT方法等漏洞
- 可利用360网站安全检测等工具辅助检测
五、总结与加固建议
关键安全措施:
- 及时安装安全补丁
- 合理配置PHP和FastCGI设置
- 禁用不必要的HTTP方法(如PUT)
- 对敏感目录实施多重认证机制
- 使用最新版本的IIS和组件
渗透测试流程建议:
- 信息收集:识别IIS版本和配置
- 漏洞扫描:检测已知漏洞(如MS15-034)
- 权限测试:验证认证绕过可能性
- 解析测试:检查文件解析逻辑缺陷
- 组合利用:尝试多种漏洞组合攻击
通过全面了解IIS中间件的安全特性和常见漏洞,安全人员可以更有效地评估和保护基于IIS的Web应用安全。