对于网站被人恶意加上一段
的代码而烦心不已。轻则导致访问者被迫访问某些网站或广告以至机器、重则被强制安装各种木马病毒,被盗取银行卡号密码,QQ密码等等。如何防止网站被挂马,成为很多朋友关心的问题!今天我们主要是讲讲这方面的问题,希望可以起到抛砖引玉的作用,使大家真正重视起来这个问题!
一、为什么好好的网站会有木马?一般木马是来自ASP SHELL和PHP SHELL的程序段控制不严,程序上有上传功能,没有进行文件目录和文件后缀等的判断,一般这类的目录,以“海阳顶端网ASP木马”较为流行。
因2003平台IIS6原因,也存在目录名问题引起ASP木马。( 微软的IIS 6存在严重解析文件名错误测试办法:在FTP中建立一个 test.asp 的文件夹,文件夹名就是 test.asp ,在这个文件夹中上传一个 hack.jpg,这个jpg的内容可以直接是写上测试服务器漏洞,然后,用IE访问这个hack.jpg,你可以发现,它一样被当作是ASP文件来运行!显然,只要你的网站程序,允许用户自己建立文件夹及上传图片,黑客就可以上传图片来当作ASP木马来运行。
解决办法:所有使用
推荐网络虚拟主机的虚拟主机用户,可以在主机面板
虚拟主机管理--进入管理--
高级功能里关闭站点的FSO权限(通过关闭FSO权限,ASP脚本木马等程序将无法上传至站点之下,因此更无法运行。
同时这将保障网站文件不被恶意更改。而且并不影响ACCESS数据库的正常读写。),就可以解决这个问题。
大家常用的动易2006和动网,BLOG这类的程序,需要详细的检查一下,并跟着开发者进行相应的安全程序升级。这样才能减少因代码原因引起的网站被黑。
2、网站被黑了,如何检查是那些网页有问题呢。目前流行的网站被黑,是在相应的asp,htm,js等文件中,插入
二:js文件挂马首先将以下代码
document.write("
");
保存为xxx.js,
则JS挂马代码为
muma.txt可改成任意后缀
四:body挂马五:隐蔽挂马top.document.body.innerHTML = top.document.body.innerHTML + '\r\n';
六:css中挂马body {
background-image: url('javascript:document.write("
")')}
七:JAVA挂马
八:图片伪装九:伪装调用
expression可以执行JS脚本。语法格式如下二种:标记固有的CSS属性名:expression(JS表达式);或自定义属性名:expression(JS表达式);
在这里我们选择第二种,代码应该大致是这样ifram e{v:expression(JS表达式);}接下来的问题是如何销毁网页里所有的ifra me对象;使用JS实现的原理是这样的:使ifra me里的请求地址变成空白页(about:blank),再将ifra me对象从DOM(文档对象模型)中移除就可以切断所有ifr ame里的
请求了。移除DOM节点的方法比较多,我这里就用 outerHTML这个属性吧。
CSS代码如下:ifra me{v:expression(this.src="/about:blank",this.outerHTML='');}
说明:前面的v字是灵儿自己定义的一个CSS属性,这里的this代表所有将要描述外观的ifra me对象,中间的逗号代表二句代码一起执行,没有执行优先顺序,这可是强有力的保证噢。about:blank代表空白页,大家都知道的。outerHTML属性是DOM对象包含自身的HTML代码,而innerHTML则是DOM对象(不含本身)里面所包含的HTML代码。
爽快,代码写好了,就让我信来测试一下有没有效果。
首先,新建一个网页,插入以上的CSS代码(或在您现有的CSS代码里加入上面那句):
本帖相关代码
然后在这个页面插入几个I FRAME代码,假设它们是被挂的木马网页。代码如下:
网站
http://www.xxxx.com/"> 网站二
保存为noifra me.htm,打开浏览器测试一下(本地测试需要启用顶部禁用的脚本的提示条哦)。我这里使用抓包工具来测试,不过也没有必要使用抓包工具,一个最简单有效的方法是打开IE的缓存文件夹,先清空它,再刷新这个页面,看看缓存文件夹里有没有这三个网站里的文件。如果没有,说明没有任何
请求结果被返回。
提示:Windows XP SP2的缓存文件夹位置 C:\Documents and Settings\Administrator\LocalSettings\Temporary Internet Files
细心的朋友发现问题来了,如果我自己的网页里要使用ifra me这个东东怎么办?
答:如果要使自己的ifra me显示在网页里,而别人挂的I FRAME马都不起作用,在CSS里加一段代码#haoexe{v:expression() !important}
对应的I FRAME代码为:
就OK了。
提示:IE7中优先执行标注有"!important"描述的样式,IE6不认识!important,采用就近原则,所以IE6的这个代码放在CSS的最后就可以了。
这里的f126,有很多朋友有疑问,他们问我为什么取"f126",我这样回答——这个f126是随意取的,只要下面的ifra me里的ID属性和CSS里的一致就行了。
BBSGOOD用户加在后台CSS样式文件编辑器中,如果自己不用ifr ame,可以直接加入以下语句本帖相关代码i frame{v:expression(this.src="/about:blank",this.outerHTML='');}
以上方法只是御防性的去解决ifr ame的挂马问题。