|
被挂马的网站特征是网站文件并没有多出可疑文件,而且被挂马的网站基本都是asp+sqlserver的架构。从企业管理器打开数据库,可以看到数据库的表里字段字符型的字段都被加上了script木马。
打开网站日志,可以看到代码是通过sql注入加上的。
没办法,先通过查询分析器把脚本去掉,幸亏黑客挂马的还是比较规律,可以一次性清除,在查询分析器里把对数据库里各表的清除脚本写好,然后一次执行,好了,打开网站,世界清净了。下面给出清除脚本:
UPDATE 表名 set 字段名= REPLACE(字段名,黑客网址 ,)
如果被感染字段是text的话,比较麻烦,要通过convert函数把text类型转化成varchar(8000)转化过程中,可能会丢失部分数据
清除完毕,将清除sql脚本保存,是否万事大吉呢,过了两个小时,网站又被挂马了!
只好又运行起查询分析器,把脚本运行,清除完毕。真是清的快,但是人总是要睡觉的,不能和黑客在那捉秘藏吧。
突然想到这是sqlserver库啊,微软一定有解决办法的,我们不能阻止住它望数据库里挂木马,但是我们可以让它挂不成功。那就是用触发器!
熟悉触发器的都知道,sql2000插入数据和修改数据其实都是先放在inserted临时表里,然后才实际去放到对应表里。阻击黑客的脚步就这个临时表里!
黑客挂马的代码里都带有 这个字样,因为只有这样才能达到客户端打开网站的同时,打大黑客网站,那我们就从这里入手。
下面给出触发器代码:
CREATE trigger 触发器名
on 表名
for update,insert
as
declare @a varchar(100) --存储字段1
declare @b varchar(100) --存储字段2
declare @c varchar(100) --存储字段3
select @a=字段1,@b=字段2,@c=字段3 from inserted
if(@a like %script% or @b like %script% or @c like %script%)
begin
ROLLBACK transaction
end
这段触发器的意思是,先定义三个变量,分别存储放在inserted表里的三个容易被
黑客下手的字符串型字段,然后用like模糊判断值中是否含有script字样,如果有,就回滚事务,不报错,以麻痹黑客,让他误以为已经挂好马了,
各位被挂马的朋友可以把这段脚本拿去,对应着修改,应该可以保证网站不被挂马。另外容易被挂马的字段还有text型,但是这个类型处理比较麻烦点,而且观察发现黑客挂一个表往往是好几个字段同时挂,所以只要一个字段不成功,整个表都是不成功的 |
上一篇:码农网注册帐号收不到邮件验证码或者激活链接下一篇:iPhone锁屏密码只设4位数字?10分钟就破解
|