很多企业站点还是使用asp程序,那边 也就是跑在经典的win2003+iis6的WEB环境下。
几年前IIS出过一个目录解析漏洞 就是 URL目录里 存在.asp字符。那么该目录下的文件会作为 asp文件来执行。如果在上传检查时不够严格,那么会出现严重的安全隐患。
这次发现的 IIS解析漏洞 出现了新的 形式 如下
1_asp;.jpg 只需要存在这样的文件名,机会被当做 ASP程序执行,由于不需要创建指定名称的目录,危害性还是很大的。
防范方法有以下三方面:
1.程序对于上传的文件进行文件类型检查。
2.对于upload目录设置IIS站点 无脚本执行权限。
3。 批量设置,使用IIS 的REWRITE功能。对于IDC服务商 比较有效,比较 不能挨个帮客户检测程序。
以下为整理的 URL规则,高中 排列组合 学的太烂,大小写切换 名称 都看晕了。
RewriteRule (.*).asp/(.*) /err.txt
RewriteRule (.*).Asp/(.*) /err.txt
RewriteRule (.*).aSp/(.*) /err.txt
RewriteRule (.*).asP/(.*) /err.txt
RewriteRule (.*).ASp/(.*) /err.txt
RewriteRule (.*).AsP/(.*) /err.txt
RewriteRule (.*).aSP/(.*) /err.txt
RewriteRule (.*).ASP/(.*) /err.txt
RewriteRule (.*).asp;(.*) /err.txt
RewriteRule (.*).Asp;(.*) /err.txt
RewriteRule (.*).aSp;(.*) /err.txt
RewriteRule (.*).asP;(.*) /err.txt
RewriteRule (.*).ASp;(.*) /err.txt
RewriteRule (.*).AsP;(.*) /err.txt
RewriteRule (.*).aSP;(.*) /err.txt
RewriteRule (.*).ASP;(.*) /err.txt
RewriteRule (.*).php;(.*) /err.txt
RewriteRule (.*).Php;(.*) /err.txt
RewriteRule (.*).pHP;(.*) /err.txt
RewriteRule (.*).phP;(.*) /err.txt
RewriteRule (.*).PHp;(.*) /err.txt
RewriteRule (.*).PhP;(.*) /err.txt
RewriteRule (.*).pHP;(.*) /err.txt
RewriteRule (.*).PHP;(.*) /err.txt
RewriteRule (.*).aspx;(.*) /err.txt
RewriteRule (.*).Aspx;(.*) /err.txt
RewriteRule (.*).aSpx;(.*) /err.txt
RewriteRule (.*).asPx;(.*) /err.txt
RewriteRule (.*).ASpx;(.*) /err.txt
RewriteRule (.*).AsPx;(.*) /err.txt
RewriteRule (.*).aSPx;(.*) /err.txt
RewriteRule (.*).ASPx;(.*) /err.txt
RewriteRule (.*).aspX;(.*) /err.txt
RewriteRule (.*).AspX;(.*) /err.txt
RewriteRule (.*).aSpX;(.*) /err.txt
RewriteRule (.*).asPX;(.*) /err.txt
RewriteRule (.*).ASpX;(.*) /err.txt
RewriteRule (.*).AsPX;(.*) /err.txt
RewriteRule (.*).aSPX;(.*) /err.txt
RewriteRule (.*).ASPX;(.*) /err.txt