网站被黑首先可能的就是SQL注入漏洞
根据网址,打开网友所说的网站,果然,页面一打开,瑞星就开始报病毒,查询源码,发现在页面的尾处被置入了木马。寻找页面漏洞,此站使用的asp程序,首先可能的就是SQL注入漏洞了。打开页面中的链接
article.asp?typeid=0109在0109后台加上',此时页面报出错了,可以看出使用sqlserver的库,如此简单的漏洞会造成非常严重的后果。另一个网站与此基本相同,不过数据库使用的是ACCESS,除了注入漏洞后,还存在数据库暴库漏洞,随便打开某个asp页面将URL地址改成www.***.com/vote/%5cvote.asp,数据库暴漏无疑。
据观查,目前大部分的asp网站均存在注入漏洞。包括省内90%的大中型网站。
如此多的网站均存在同样的问题,
1、使用ASP开发的网站
2、对ASP的漏洞在开发时没有考虑到。
3、没有及时升级、修改程序(虽然注入漏洞在N年前就已公布了)
此漏洞的危害是致命的,因为不懂多少编程知识的人,完全可以拿网上现成的注入工具几分钟就可以攻破一个网站。不过预防起来却也十分容易。
1、首先在连接数据库的文件中加入以下代码,如果你是一个统一的conn.asp文件,其它的所有文件包含它调用的话,那只用改一个文件就可以了。不然只能一个一个修改。
事例:
conn.asp
第一行加入以下代码:on error resume next
这段代码可以在恶意提交参数引起数据库报错时不提示任何错误信息。
2、对于需要获得参数的程序,应该注意过滤非法的字符。
如果要取得数字型参数,使用以下方式:
id=Clng(request("id"))
如果要取得字符型参数,要注意对恶意字符的过虑。如:
str=trim(request("str"))
str=replace(str,"'"," ")'用空来替换非法字符'
str=replace(str,"chr"," ")'用空来替换非法字符chr
str=replace(str,"char"," ")'用空来替换非法字符char
str=replace(str,";"," ")'用空来替换非法字符;
str=replace(str,"and"," ")'用空来替换非法字符and
str=replace(str,"%"," ")'用空来替换非法字符%
str=replace(str,"select"," ")'用空来替换非法字符select
str=replace(str,"delete"," ")'用空来替换非法字符delete
str=replace(str,"exec"," ")'用空来替换非法字符exec
3、对于使用ACCESS库的程序,其存在一个十分严重的漏洞:暴库。
具体原因不说了,有兴趣的读者可以到网上搜到相关信息。偶只说一下解决方法:
在数据库连接时,大部分的开发人员使用下面的连接方法:
set conn=server.CreateObject("adodb.connection")
conn.open "driver={Microsoft Access Driver (*.mdb)};dbq="&Server.MapPath("database/aa.mdb")
漏洞就出在dbq="&Server.MapPath("database/aa.mdb")上了。
正确的应该是:dbq="&Server.MapPath("/database/aa.mdb")
databse前面的/代表的是根目录,如果你的数据库在web根路径下news目录中,则改为dbq="&Server.MapPath("/news/database/aa.mdb")
4、漏洞已经解决了,下面就要删除黑客上传的大量的木马、后门了。
此工作比较麻烦,需要足够的细心和耐心。
一般从WEB日志入手,一行一行去看?好几百万行!!!这样是行不通的,有效的方法是在日志中搜索常被用来注入的字符,
比如上面提到的‘,and,%等,一般黑客上传木马后均会对文件进行修改,也可以搜索代表WINDOWS文件夹的字符:\,
搜索到相关行后,可以据此找到对应的IP,再根据IP一行行搜索可以逐步找到黑客的行走路线的。找到其上传的木马文件,删除。
通常也需要检查网站文件的修改时间,(黑客常会在你的asp文件中加入一句话木马等程序以做为后门)找到后将程序修改好。
本人一直从事门户站的开发,曾在两年前帮助省内几家行业站修改关于注入的漏洞。没想到,至今还有大量的站存在此漏洞。希望本文能给相关人员以提示。引起相关人员由其是ASP开发者足够的重视。
注:大家还有一个误解,以为ASP的网站就不安全,而JSP等技术开发的网站就安全,其实这是不对的,安全与否是于开发者对安全知识了解的程度而定的。
据我发现当前几家大型的门户站(虽然使用JSP),依然存在严重的漏洞的。