涉及程序:
IIS 5.0
描述:
IIS 5.0 示例脚本文件CodeBrws.asp漏洞
详细:
IIS 5.0默认自带的展现ASP语言特点的示例脚本文件CodeBrws.asp存在一个漏洞:
对用户输入没有正确过滤,远程攻击者可利用此漏洞浏览web根目录下的以.asp, .inc, .htm, 和 .html为扩展名的所有文件源代码。
其根本原因在于CodeBrws.asp脚本中虽然检查了提交给它的参数的路径信息是否包含“..”串,但没有考虑到Unicode的可能性:远程攻击者可能提交“..”串的Unicode表示方式,即“%c0%ae%c0%ae”给脚本程序,从而能访问到Web目录内所有以.asp、.inc、.htm和.html为扩展名的文件的源代码。
另攻击者也能利用这个漏洞检测系统的目录结构。即攻击者如果尝试着去访问一个'IISamples'目录外并不存在的ASP文件,CodeBrws.asp就会根据企图去访问的文件的路径的有效性作出不同的回复。
例:
请求(Request):
http://192.168.x.x/IISSamples/sdk/asp/docs/CodeBrws.asp?Source=/IISSAMPLES/%c0%ae%c0%ae/%c0%ae%c0%ae/bogus_directory/nonexistent.asp
回复(Response): Microsoft VBScript runtime (0x800A004C) Path not found(路径不存在)
--------------------
请求(Request):
http://192.168.x.x/IISSamples/sdk/asp/docs/CodeBrws.asp?Source=/IISSAMPLES/%c0%ae%c0%ae/%c0%ae%c0%ae/oracle/nonexistant.asp
回复(Response): Microsoft VBScript runtime (0x800A0035) File not found(文件不存在)
受影响的系统:
IIS 5.0
解决方案:
建议使用Internet Services Manager删除整个/IISSamples目录。
如果因为某些原因不能将它整个删除,则删除CodeBrws.asp脚本文件即可
(路径: c:inetpubiissamplessdkaspdocsCodeBrws.asp)