Chinaunix首页 | 论坛 | 博客
  • 博客访问: 242920
  • 博文数量: 27
  • 博客积分: 4010
  • 博客等级: 上校
  • 技术积分: 410
  • 用 户 组: 普通用户
  • 注册时间: 2007-08-10 13:39
文章分类

全部博文(27)

文章存档

2010年(17)

2009年(2)

2008年(8)

我的朋友
最近访客

分类: Java

2010-07-21 19:47:00

  今天在看一些挂马的资料时,看到一种用来伪装恶意js脚本的方法,就是对脚本进行加密,然后在客户端重新解密拼装执行。
 
  无意中突然想到,前段时间用到的一个别人写的js脚本,有两个发布版本,一个是用来学习的完整版(22KB),另一个是用来实际部署的压缩版(8K)。压缩版打开之后是满篇的乱码,确切的说应该是乱字符,虽然混乱,但使用却没有任何问题。当时还以为是JS自带的压缩功能,也没细看。今天又想起它了,于是又翻出来认真看了一下,果然,在混乱的字符后面,藏着一句"eval(ungzip(str));"。
 
  eval(string)函数是刚刚在挂马的资料中看到的,用来执行其中字符串参数所包含的js代码,代码往前找,发现ungzip(string)是作者自己定义的一个解压字符串的函数,这样它的压缩方式就清晰了。
  其实很简单,将正常的js脚本使用压缩函数压缩之后,得到一个新的短小的字符串,然后将解压的函数和字符串一起放到js代码中,浏览器在打开网页时执行函数对脚本进行解压,然后执行。减轻了网络流量的压力,客户端在性能上没有明显的消耗,很赞。
阅读(1495) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~