很不幸,前几天笔者的某个网站被挂马达一天之久,当然这也要怪笔者的粗枝大意,对于网站安全问题没有太过上心,以至让那些卑鄙的人得以有机可乘。但是,危机危机,有的人往往从危机里面看到危险,而有的人更愿意从危机里面看到机会,一切视乎你如何看待,幸好笔者还算一个愿意学习的人,于是花费了一段时间,初步了解什么是挂马。
一直以来,都听说过有网站被挂马然后被百度K掉的事情,然而万万想不到笔者自己的网站也有机会尝试被别人挂马,因为长久以来,笔者都认为挂马这样的事情和自己应该绝缘,毕竟网站纯粹提供学习资讯,和其他人没任何竞争可言,但事后笔者才醒悟,其实挂马与否,并非因为是否对方的竞争对手,对方要黑掉你的网站,而是挂马后可以赚钱,于是才有一些黑客不惜一切代价入侵他人网站并挂马。
一、浏览被挂马网站的后遗症
笔者在这里简单介绍一下,相信喜欢上网的朋友都应该试过当自己进入一个陌生网站后,突然无端端出现大量软件并自动安装的情况,这时候或许杀毒软件会提醒,但很多时候杀毒软件是不声不响就让那些软件安装完毕。之后当你浏览其他网站时,要么经常弹出一些不知道从何而来的网页,要么就是当打开浏览器就自动跳转到某个网站里……这就是浏览被挂马的网站后遗症了。
二、网站被挂马的后果
如果一个网站被挂马,而该网站的站长又没有及时发现,网站被搜索引擎收录后,那么搜索引擎通过各种网页技术分析发现你的网站存在木马,那就悲哀了。因为这时搜索引擎就会认为你这个网站是一个“黑”网站,于是它就会提醒浏览者,不要进入这个网站,因为这个网站有木马,通常我们经常可以看到如“安全联盟提醒您:该页面可能已被非法篡改!”这样的提示,就是因为网站被挂马篡改页面而出现的后果,所以这是需要防止的。
毕竟网站被挂马后,很容易遭受搜索引擎的降权,到时候不但排名下降,更重要的是你的网站数据也有可能被黑客窃取!
三、如何发现自己的网站被挂马?
笔者登录那个网站时,被杀毒软件提醒,于是打开首页文件进行源代码的检查后才发现被挂马了。笔者所中的这个木马比较麻烦,不仅在HTML文件被挂上,而且连PHP以及TXT都被挂马,以至整个网站数千网页都出现被挂马的情况发生。
(图1)
如图1里通过HTML源代码的分析,发现被挂马的地方就是处于IFRAME代码之中,尽管只是简单的一条代码,但由于涉及数千个网页,一时间处理起来也是颇为麻烦。
如果能看懂HTML文本语言的话,那么要发现这些被挂马的地方也是挺方便的,如果看不懂的话,那么根据网上资料所言,使用SINA的安全网站被挂马检测工具来进行检查的话,也是很快可以查出网站的挂马代码。
四、如何删除被挂马的网页代码?
我们可以通过杀毒软件把木马的核心程序给删除掉,不过遗留在HTML、PHP文件的那个IFRAME代码是不会被杀毒软件所删除的,这就需要我们人工进行删除,如果是十来条网页的话,那样也没什么太大的工作量,不过由于现在的CMS网站程序动辄数百上千条HTML以及PHP文件,那么要人工删除无疑就是工作量极其繁琐的事情,这个时候我们应该如何解决问题?
(图2)
笔者推荐使用一个名为“批量修改工具”的软件,这个软件的最大好处就是可以查找一段代码,然后替换任何你希望替换的东西,之后可以自由选择“文件类型”以及“目录”。如图2里,笔者由于当时网站的PHP文件被挂马,于是使用这个软件,然后“文件类型”选择“*.php”,目录选择的是网站所在目录,当一切准备好之后,按“全换”键,很快地网页就唰唰唰地恢复了原来的干净页面。
最后,尽管网页上已经清理干净,但依然会有漏网之鱼潜伏在其他地方——数据库,所以我们还要在数据库里面清理木马。由于现在网站所使用的数据库基本都是SQL数据库,因此我们可以使用SQL语言来解决木马的问题,只需要使用如下代码:“update 表名 set 字段名=replace(字段名,‘xxx’)”,这里面关键点就是要把xxx(挂马的代码)的内容替换为空。通过如上SQL语言,我们将可以彻底删除所有挂马代码,当然在删除数据库数据前一定要事先进行数据库备份,毕竟删除代码的同时也有可能损坏数据库。
五、怎样预防网站被再次挂马?
相信有了一次网站被挂马的经历后,大家都不愿意继续被这样的风险所缠绕,所以我们要学会预防,让自己的网站可以远离这些挂马代码的入侵。
1、由于挂马代码种类不少,有图片代码、框架代码、JS代码以及IFRAME挂马等等,所以我们一定要在自己的网站服务器上做好杀毒软件、防木马软件的安装,并且定期进行更新;
2、我们还需要定时更换远程登录的密码、FTP上传的密码等等,毕竟有时候恰好只是因为我们的密码太简单,而被黑客枚举成功而已,所以不管任何时候,网站管理员的密码一定要足够复杂,并且还定时更换;
3、对于网站页面以及数据库等资料,我们一定要习惯定时备份,要养成良好习惯,最好每天能定时打包网站为RAR文件,然后每隔几天就从网站上下载到自己的硬盘里,甚至刻录成光盘,通过这样的备份手段,我们可以避免损失太多的数据;
4、如果我们使用的是IIS的话,请禁止写入以及目录禁止执行,这样的功能组合可以有效防止ASP木马;
5、有时候有的黑客使用了搜索引擎窃取信息,所以对于敏感目录或者文件,我们应该尽量排除搜索引擎的抓取,这个时候我们就需要创建一个robots.txt文件到网站的根目录了,这个文件的好处就是告诉搜索引擎哪些页面可以被抓取,哪些页面不可以被抓取。
6、利用Windows更新把服务器的后门尽量封闭。相信对于很多站长而言,由于资金和便利性等问题,大多是使用32位的winows 2003 sever,然而这个系统已经存在达11年之久,所以被黑客研究得十分透彻,因此存在大量后门,所以我们需要利用更新平台所提供的补丁让这个服务器可以尽量封闭后门。
相信经过如上的设置后,网站被挂马的概率会较之前大为下降,尽管我们没有办法100%保证网站不被人入侵挂马、挂黑链,但只要我们愿意花更多的时间去进行预防,将会把风险降到最低,毕竟作为一个站长,我们将有机会面对很多突发情况,所以我们可以做的就是尽量做好各种准备,以面对这些情况的突然出现!