1、 漏洞介绍及成因
IIS 6.0 在处理含有特殊符号的文件路径时会出现逻辑错误,从而造成文件解析漏洞。这一漏洞有两种完全不同的利用方式:
/test.asp/test.jpg
test.asp;.jpg
2、漏洞复现
利用方式 1
第一种是新建一个名为 “test.asp” 的目录,该目录中的任何文件都被 IIS 当作 asp 程序执行(特殊符号是 “/” )
利用方式 2
第二种是上传名为 “test.asp;.jpg” 的文件,虽然该文件真正的后缀名是 “.jpg”, 但由于含有特殊符号 “;” ,仍会被 IIS 当做 asp 程序执行
IIS7.5 文件解析漏洞
test.jpg/.php
URL 中文件后缀是 .php ,便无论该文件是否存在,都直接交给 php 处理,而 php 又默认开启 “cgi.fix_pathinfo”, 会对文件进行 “ 修理 ” ,可谓 “ 修理 ” ?举个例子,当 php 遇到路径 “/aaa.xxx/bbb.yyy” 时,若 “/aaa.xxx/bbb.yyy” 不存在,则会去掉最后的 “bbb.yyy” ,然后判断 “/aaa.xxx” 是否存在,若存在,则把 “/aaa.xxx” 当作文件。
若有文件 test.jpg ,访问时在其后加 /.php ,便可以把 “test.jpg/.php” 交给 php , php 修理文件路径 “test.jpg/.php” 得到 ”test.jpg” ,该文件存在,便把该文件作为 php 程序执行了。
3、 漏洞修复
1)对新建目录文件名进行过滤,不允许新建包含‘.’的文件
2)曲线网站后台新建目录的功能,不允许新建目录
3)限制上传的脚本执行权限,不允许执行脚本
4)过滤.asp/xm.jpg,通过ISApi组件过滤