文章目录
- [IIS 解析漏洞复现](#IIS 解析漏洞复现)
-
- [1. 漏洞描述](#1. 漏洞描述)
- [2. 漏洞复现](#2. 漏洞复现)
- [3. 漏洞原因](#3. 漏洞原因)
- [4. 安全加固](#4. 安全加固)
- [5. 安全防护](#5. 安全防护)
IIS 解析漏洞复现
1. 漏洞描述
说明 | 内容 |
---|---|
漏洞编号 | |
漏洞名称 | IIS 解析漏洞 |
漏洞评级 | 高危 |
影响范围 | IIS 6.0及以前版本 IIS 7.0 IIS 7.5 |
漏洞描述 | IIS 解析漏洞是指在 IIS 服务器上存在的安全漏洞,可能导致恶意用户能够执行未经授权的代码或访问受限资源。 |
修复方案 | 打补丁,上设备,升级组件 |
IIS漏洞通常涉及两个主要问题:
- 目录遍历漏洞(Directory Traversal): 目录遍历漏洞发生在 IIS 服务器中,当处理某些请求时,未正确过滤用户提供的输入。攻击者可以利用此漏洞跳出 Web 根目录,访问系统上的其他目录或文件。通过构造特定的请求,攻击者可以获取敏感文件、执行任意代码,甚至可能导致服务器完全被控制。
- 文件扩展名映射漏洞(File Extension Handling): 文件扩展名映射漏洞指的是 IIS 对不同文件扩展进行处理时的安全性问题。如果服务器配置不当,攻击者可以通过将特定的文件扩展名追加到 URL 中,绕过正常的处理流程,让服务器错误地解析不应该被解析的文件。这可能导致服务器执行了恶意脚本或返回敏感文件的内容。
漏洞存在版本IIS7.0/7.5
IIS支持PHP脚本
在指定目录下创建一个phpinfo.php文件
文件内容如下
访问该文件
发现报错404找不到文件或目录。
这里我们需要赋予IIS能够解释和执行PHP脚本的能力。
在虚拟机中打开IIS管理器,这里我们在全局进行配置。
php解释执行是通过php解释器来决定的,这里我们使用phpstudy中的php-cgi.exe
当用户访问phpinfo.php的时候,将该文件找到交给php-cgi.exe来解释执行。
执行成功
但是该处存在漏洞
将phpinfo.php后缀名修改为png,重新访问页面。
IIS 7.0/7.5 解析漏洞,在路径的末尾添加一个/.php,页面报错的原因是这里使用的是IIS10.0 该漏洞已被修复。
那么我们可以手动创建该漏洞。
2. 漏洞复现
3. 漏洞原因
在做cgi配置的时候请求限制选项中的仅当请求映射至以下内容时才调用处理程序(1)选项没有勾选上。
4. 安全加固
将cgi.fix_patginfo的值修改为false
添加一个CGI
右键点击编辑
选择php.ini文件
修改php.ini文件中的cgi.fix.pathinfo的值为0
刷新页面,发现已经无法访问了
5. 安全防护
为了防止 IIS 解析漏洞的利用,可以采取以下措施:
- 及时更新和修补操作系统和 IIS 服务器的安全补丁。
- 限制文件和目录的访问权限,确保 IIS 运行在最低特权级别。
- 配置 IIS,禁用或限制处理不常见的文件扩展名。只允许必要的扩展名进行解析。
- 对用户输入进行严格的验证和过滤,避免目录遍历攻击。例如,使用白名单检查来限制允许访问的目录和文件。
录的访问权限,确保 IIS 运行在最低特权级别。 - 配置 IIS,禁用或限制处理不常见的文件扩展名。只允许必要的扩展名进行解析。
- 对用户输入进行严格的验证和过滤,避免目录遍历攻击。例如,使用白名单检查来限制允许访问的目录和文件。