社区应用 最新帖子 精华区 社区服务 会员列表 统计排行
  • 480阅读
  • 0回复

[分享]分享网站被挂恶意代码的查错经历

楼层直达
z3960 
级别: FLY版主
发帖
796916
飞翔币
213263
威望
215737
飞扬币
2682209
信誉值
8

程序员职业的特点,难免会影响自己的业余爱好,比如空闲时间别人逛淘宝,程序员就逛博客园、刷微博的时候也会关注一些互联网技术方面的微博,还有一部分像我,做一名业余站长,利用下班时间维护更新下网站内容,看着IP数的增长、百度收录、关键字的排名攀升,自己也会得到满足,顺带的是,挂在网站上的几个GG、百度联盟广告也有些许的收入,解决两餐问题还是可以的,其实程序员做网站最主要的是为了兴趣,想赚大钱的话就不会做草根小站长了。
废话了不少,说说这次遇到的网站被挂恶意代码的经历吧;

恶意代码的表现是:从百度收录的文章点过来到网站就会弹出好几个色*情网站弹窗页,而我从浏览器地址栏直接输入网址的话,就不会出现
,按照常规的排查手段,马上到站点查看有没有恶意文件,然后检查下网站的文件有没有被注入了恶意的代码,经过排查,都是正常的(这里犯错了,我只检查了模板文件,没有检查JS文件,为后续留下隐患),继而,我怀疑是不是广告联盟的代码问题呢?所以,我把模板文件备份一下,把全部的广告联盟代码、分享组件代码全部都去掉,发现还是会弹窗,因为好几天都没能把这个问题解决,跟同学都觉得这个问题真是太神,其中怀疑过VPS的空间商是不是被黑了,但是发现网站更换模板之后就没有弹窗了,于是还是把排查重点放在模板文件上。

排查有了新的转机,当我把所有外部引用JS(广告、分享条、微博、日志推荐)都排查掉之后,我开始怀疑网站的JS文件了,结果在Jquery里发现了这段恶意的代码,因为恶意弹窗是在网页一开始加载就连续的弹出来,心想,也应该是在JS一开始加载的地方,在Jquery加载之前,这里值得一提的是,这段恶意代码也非常有技术含量!


<DIV id=aimg_6442_menu initialized="true" cache="1" fade="false" cover="0" layer="1" mtype="menu" ctrlkey="aimg_6442" disautofocus="true" aimg_tip? tip_4>

可以看出,在Jquery加载之前,输出了一段Javascript引用,代码是引用了一张图片 link5.jpg ,好,把这张图片download下来看看


<DIV id=aimg_6443_menu disautofocus="true" aimg_tip? tip_4>

也是很普通的一张图片,但是你以为这真的是一张普普通通的图片你就错了,还记得以前在网上见过一张传闻有"内涵”的图片,打开也是一张普通的图片,但是用记事本打开之后,里面岛国的种子地址(声明:我并没有下载)所以,用记事本打开它来看看究竟。


<DIV id=aimg_6444_menu initialized="true" cache="1" fade="false" cover="0" layer="1" mtype="menu" ctrlkey="aimg_6444" disautofocus="true" aimg_tip? tip_4>

其中,document.referrer是获取网站的来源,比如从百度过来的,referrer="www.baidu.com",很多网站都是利用这个HTTP的属性来防止盗链的,可见,他是判断了有来源的话才会输出他的广告JS代码,目的就是为了不让站长容易发现弹窗广告的问题。

从这次排查恶意代码的经历可以看出,网站安全是多么重要的一件事,假如你没有对用户上传的图片进行检查,网站就会留下很大的隐患,所以单靠检查文件后缀是不行的,这方面博客园做得比较好,发布这篇随笔的时候,link5.jpg 这张图片无法上传!
 
我不喜欢说话却每天说最多的话,我不喜欢笑却总笑个不停,身边的每个人都说我的生活好快乐,于是我也就认为自己真的快乐。可是为什么我会在一大群朋友中突然地就沉默,为什么在人群中看到个相似的背影就难过,看见秋天树木疯狂地掉叶子我就忘记了说话,看见天色渐晚路上暖黄色的灯火就忘记了自己原来的方向。