首先介绍IIS短文件名漏洞的背景和原理:IIS短文件名漏洞指的是在运行IIS时,如果文件名字过长或者包含非英文字符,IIS会自动为其分配一个缩短版的文件名,这个缩短版的文件名会遵循8.3短名称命名规则,可能会导致安全漏洞。
攻击者可以利用这个漏洞,通过构造特殊的文件名,使得IIS服务器返回意外的文件内容(比如Win.ini文件),攻击者可以通过分析返回的文件内容获取敏感信息。
下面介绍IIS短文件名漏洞的攻击步骤:
步骤一:搭建IIS服务器
首先,需要搭建一个IIS服务器。可以在本地虚拟机上或者在公网上租用一个IIS服务器。
步骤二:使用DirBuster工具进行网站目录爆破
使用DirBuster工具扫描IIS服务器上的目录,找到网站的目录结构,确定漏洞利用点。
步骤三:构造恶意文件名
在确定了目标目录后,构造一个恶意文件名。文件名需要特别长,包含非英文字符和多级目录。比如\\..\\..\\..\\..\\..\\..\\..\\Windows\\system.ini
,这个文件名的短文件名就是 C:\Windows\System.ini
。
步骤四:发送GET请求
发送GET请求到目录的非默认文件名下,例如http://localhost/test/index.asp/test.asp
。
步骤五:验证是否存在漏洞
如果返回的文件是C:\Windows\System.ini
的内容,就说明存在IIS短文件名漏洞。
示例一:
构造一个特殊的文件名:%25%35%25%45%25%38%25%38%25%35%25%45%25%38%25%45%25%38%25%42%25%37%25%45%25%42%25%35
,这个文件名解码后是:%5%E%88%E8%B7%EB%5B%E5
,对应的短文件名为XPLOIT~1.INI
。 发送GET请求:http://localhost/test/index.asp/%25%35%25%45%25%38%25%38%25%35%25%45%25%38%25%45%25%38%25%42%25%37%25%45%25%42%25%35
,如果服务器返回的是C:\Windows\System.ini
的内容,就说明存在IIS短文件名漏洞。
示例二:
构造一个特殊的文件名:!SnatchIt!
,这个文件名短文件名为 ~SNATCH~2.INI
,发送GET请求:http://localhost/test/index.asp/!SnatchIt!
,如果服务器返回的是C:\Windows\System.ini
的内容,就说明存在IIS短文件名漏洞。
以上是IIS短文件名漏洞的攻击示例,网站管理员可以通过更新IIS服务器或关闭短文件名生成规则的方式来修复该漏洞。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:IIS短文件名漏洞复现图文详解 - Python技术站