20180102 杭州沈阳受到跨域攻击的解决报告
时间线流程
0102 下午收到关于IOS和火狐浏览器下,访问遭到谷歌 Google Safe Browsing 拦截的提示。
首先根据浏览器官方提供的详情按钮和Google Safe Browsing链接找到问题向导。
https://www.stopbadware.org/my-site-has-badware
该类浏览器警告的检测来源主要由谷歌提供,根据“安全信息由Google Safe Browsing”判断网站被警告由谷歌检测而来,进入Google警告的解决页面:
https://www.stopbadware.org/blacklisted-by-google
跟随页面提示,进入谷歌的官方被黑处理页面。
https://developers.google.com/web/fundamentals/security/hacked/
在该页面研究现象和因素后,配合提示,选择了三个工具配合下一步的的排查工作:阿里云盾,360,GoogleWebmasterConsole。
由于我们的页面主要依赖于虚拟主机,云盾的检测实效基本为0。考虑到建立在ECS上的汽车与地域导航的后端有一定的相似性,参考了云盾对汽车的报警提示,漏洞主要在旧版的phpMyAdmin中。
360检测提示也来源于phpMyAdmin。这一点和之前处理合肥的速度问题时的因素一致。
GoogleWebmasterConsole和邮箱信息提供了几个问题页面,对相关页面和报警提示检查后,问题主要集中于关键词:恶意软件,跳转链接。本机测试并没有相关的问题出现,考虑到可能是系统拦截或者IP选择的原因。对照了谷歌提供的系列页面,其中包括动态页面和静态页面。考虑模版和模块出问题的可能性不大。重点考虑是JS的问题。
经过一系列排查,整理相关页面发现以下代码:
显然,这是一个伪装成jquery的恶意js。用之前提示警告的浏览器和设备打开该地址同样报警,确定这里是一个问题点。打开该js文件发现:
通过unescape解密得到明文(其实之前还有通过eval实现的案例):
打开其中iframe的SRC地址,确定问题根源。内部数据依旧经过编码,利用base64解码后,得到脚本。
在服务器搜索内容代码,找到根源文件。删除PhpMyAdmin和感染文件。问题初步解决,和站长配合更新了专题和各个页面。
0103 向谷歌官方提供修复地址,进入观察期。
0104 谷歌恢复访问。