jinhailang / blog

技术博客:知其然,知其所以然
https://github.com/jinhailang/blog/issues
60 stars 6 forks source link

记一次典型的网站劫持 #55

Open jinhailang opened 3 months ago

jinhailang commented 3 months ago

记一次典型的网站劫持

起因

最近接到一个朋友的求助,他的网站被封了,让我帮忙看看。网站是托管在某云平台的,云平台给出的原因是网站涉赌。 起初,我也是一脸懵逼,只能请求云平台临时解封,需要复现问题才好排查原因。但当我电脑浏览器输入网址,发现看起来正常的。这就是个最简单网站,几乎全是静态网页,没什么内容,怎么会涉赌呢?难道是云平台搞错了?

排查

首先猜测,是不是网站有敏感词,触发了安全检测的逻辑呢?我仔细浏览网站,都是一些基础的介绍性内容,不太可能出现敏感词。只能再次联系云平台客服给出网站被封的具体原因,他们发给我一个网站的截图,显示内容是菠菜,我检查网址,确实是我朋友的网站。

image

网站应该是被攻击了,但我电脑上为什么不能复现呢?难道是已经恢复了? 我把网址发给朋友让他试下,自己顺手也在手机上点击了一下,发现微信上打不开,也被封了。复制到手机浏览器,可以打开,但是自动跳转到一个菠菜网站。终于能复现了 :)

分析

原因就是网站被劫持了,猜测可能有两种情况: 1、域名被污染了,DNS 解析到了恶意网站 2、网站本身的问题,被黑客入侵,修改了网站的内容

我首先检查了域名的解析,发现没有问题,解析到了正确的 IP 地址。那就是网站本身的问题了。 使用 google 浏览器,打开开发者工具,模拟手机重新访问网站,发现首页正常显示,但马上又自动跳转到了菠菜网站。仔细分析 NetNetWork 请求记录,发现一个可疑的 js 请求:

image-1

打开这个 JS,源码如下:

image-2

很明显,就是这个 JS 搞的鬼,还故意做了判断,只有手机端才会跳转。

那么这个 JS 请求是怎么来的呢?直接按这个 JS 网址索搜关键字,找不到。只能用笨办法,逐一分析请求记录。 第一个请求是首页 index.html,打开源码,发现一段奇怪的代码:

image-3

看起来很可疑,解码查看如下:

image-4

终于找到原因了,首页被插入了这段恶意代码,这段代码会动态加载 JS,然后跳转到菠菜网站。 我删除了这段代码,并索搜,检查了其他页面,没有发现其他异常代码。重新上传页面到服务器,再次访问,问题解决!

又被劫持

但是,没过几天,朋友又反馈,网站又还是会跳到其他网站。我重新排查,发现个新的现象:不管是手机端还是模拟手机浏览器,都只会出现一次,再次访问就不会跳转了。这次病毒更狡猾了?

只能重新分析请求记录,发现这个 JS 请求:

image-5

但是,这个 JS 请求是个空的 HTML 页面,没有任何内容。我只能猜测,这个 JS 是动态生成的,有概率成功请求。问题又回来了,首先得想办法稳定复现。 黑客无非两个手段控制,一是简单按随机概率响应攻击 JS;二是识别终端用户,只有第一次访问才会跳转。多试几次,排除第一个情况。 因为没有登录信息,黑客无非就是通过 IP 或 MAC 地址识别终端用户。于是,我使用代理,每次切换不同 IP 访问,果然每次都会跳转。果然更狡猾了!

再次分析

我重新请求上面可疑的 JS 请求,发现这次返回的内容不是空的了,而是一段 JS 代码:

image-6

手段类似,还是使用编码混淆的方式,跳转到广告网站。那么这个 JS 请求又是怎么来的呢?与上一次一样,按顺序逐一分析请求记录,排除首页之后,是一些 JS 请求:

image-7

先直接搜索关键字试试,果然找到了相关的 JS 文件:

image-8

还是一样的手段,混淆并动态生成 JS,跳转到广告网站。区别是这次是通过 JS 文件加载的,而不是直接插入到 HTML 页面中。

总结

这是非常典型的网站入侵攻击。黑客非法取得源码文件修改权限后,使用了两种方式劫持网站,一是直接插入恶意代码到 HTML 页面中,二是通过 JS 文件加载恶意代码。这两种方式都是通过混淆代码,动态生成 JS,跳转到广告网站。黑客还使用了一些手段,如只识别手机端,或第一次访问才会跳转,通过 IP 地址识别终端用户等。

黑客是用什么手段入侵的呢?我只能猜测,可能是通过 FTP 泄露的密码,或者是网站的漏洞。这个网站是一个静态网站,没有输入之类的数据交互。其实托管平台也已经有一些基础的安全手段,如:修改 FTP 密码;设置文件权限,只读不可写;PHP 安全参数设置;网站备份等。这些基础安全措施,可以有效的防止大部分的入侵攻击。

搜索发现,这个攻击早在 22 年就有报道了https://www.freebuf.com/articles/network/351899.html,看样子影响面挺大的。