关于Windows IIS短文件名漏洞复现图文说明
漏洞简介
Windows IIS短文件名漏洞(CVE20177269)是一个影响Microsoft Windows操作系统的IIS服务器的安全漏洞,当攻击者利用这个漏洞,可以在目标服务器上执行任意代码,从而获取系统权限,这个漏洞主要是由于IIS在处理某些特殊请求时,没有正确限制文件名长度,导致攻击者可以利用这个漏洞构造恶意文件名,从而实现远程代码执行。
漏洞复现环境
操作系统:Windows Server 2012 R2
IIS版本:Internet Information Services 8.5
漏洞复现步骤
1、打开Windows Server 2012 R2虚拟机,安装IIS服务。
2、打开“控制面板”>“程序和功能”,找到“启用或关闭Windows功能”,勾选“Internet信息服务”,然后点击“确定”。
3、等待IIS服务安装完成后,打开“Internet Information Services (IIS)管理器”。
4、在左侧导航栏中,展开“网站”节点,右键点击“默认网站”,选择“添加虚拟目录”。
5、在弹出的“添加虚拟目录”对话框中,设置别名为“%c1%1c”,路径为C:inetpubwwwroottest,点击“确定”。
6、打开命令提示符,输入以下命令,创建一个名为“test.php”的文件:
echo @echo off > C:inetpubwwwroottesttest.php
7、修改文件属性,使得IIS可以解析php文件:
attrib +s +h C:inetpubwwwroottesttest.php icacls C:inetpubwwwroottest /grant Everyone:R
8、打开浏览器,访问http://localhost/test/test.php
,如果看到正常的phpinfo页面,说明漏洞复现成功。
漏洞原理分析
Windows IIS短文件名漏洞的原理主要是由于IIS在处理某些特殊请求时,没有正确限制文件名长度,当攻击者构造一个包含特殊字符的URL时,IIS会将这些特殊字符解析为文件名的一部分,由于IIS没有对文件名长度进行限制,攻击者可以利用这个漏洞构造一个超过系统允许的最大文件名长度的文件名,从而实现远程代码执行。
漏洞修复建议
1、及时更新操作系统和IIS服务,避免使用存在漏洞的版本。
2、对IIS中的虚拟目录进行合理配置,避免使用过于简单的别名。
3、对IIS中的文件进行严格的权限控制,避免给不必要的用户过多的权限。
4、定期检查系统日志,发现异常情况及时进行处理。
相关问题与解答
问题1:为什么需要设置别名为“%c1%1c”?
答:这是因为在URL中,某些特殊字符(如空格、点等)需要进行URL编码,而“%c1%1c”就是空格字符的URL编码形式,通过设置这样的别名,可以让IIS将空格字符解析为文件名的一部分。
问题2:为什么需要修改文件属性?
答:这是因为默认情况下,IIS不允许解析非文本文件(如php、asp等),通过修改文件属性,可以让IIS将这些文件识别为可解析的文件类型。
问题3:为什么需要设置文件夹的权限?
答:这是因为默认情况下,IIS只允许访问文件夹本身的文件,通过设置文件夹的权限,可以让IIS访问文件夹下的所有文件。
问题4:为什么需要使用命令提示符创建文件?
答:这是因为在Web应用程序中,无法直接创建本地文件,通过使用命令提示符创建文件,可以将创建的文件放置在Web应用程序的根目录下,从而实现远程代码执行。
原创文章,作者:K-seo,如若转载,请注明出处:https://www.kdun.cn/ask/512896.html