IIS文件解析漏洞原理
IIS6.0存在文件解析漏洞 , 文件名中分号( ; )后面的内容不会被解析
比如 a.asp;jpg 文件 会被IIS解析成 a.asp
这个漏洞是逻辑上的问题,IIS6.0只是简单的根据扩展名来识别文件类型 , IIS底层使用C++写的,分号在C++中是结束符号 , 解析文件名读取到分号的时候,IIS会认为代码已经结束,从而停止解析
漏洞复现
环境准备
Windows2003系统 , IIS6.0服务器
网站主目录下新建 test.php 文件
访问 test.asp 文件 , 如果出现一下情况 , 在IIS的 Web服务扩展开启 动态服务器页面即可
Active Server Pages 即 asp 的全称 , 该服务用来支持 asp 文件的解析
可以正常执行代码,并显示当前时间
接下来 , 我们把 test.asp 文件 , 重命名为 test.asp;jpg , 然后重新访问
仍然可以正常访问
固 test.asp;jpg 被IIS当做 test.asp 文件执行了