【Linux】记录一起网站劫持事件

故事很短,处理也简单。权当记录一下,各位安全大大们手下留情。

最近一位客户遇到官网被劫持的情况,想我们帮忙解决一下(本来不关我们的事,毕竟情面在这...还是无偿地协助一下),经过三四轮"谦让"最终这个任务还是落到了我这个不精通安全的人的头上(😭)。

客户说通过百度跳转官网,首页加载到一半时发生另一次跳转,跳到一个"赌球"网站去(欧洲杯最近大热),但直接输入域名就不会发生跳转。

我初步尝试了一下,除了 PC 端有这种情况外,移动端也会触发这种跳转...首先不要被现象迷惑,从首页能够加载到一半的情况可知,这种恶意跳转应该是通过代码触发的。

因为如果是在网络层面又或者 Http Server 转发,根本就不会让官网首页出现,因此排查的方向应聚焦到代码层面。

其次,通过百度访问会触发恶意跳转,但域名访问不会。这不禁让我想到对方有可能是通过 Header 中的 Referer 进行来源判断。于是我尝试使用 bing 搜索引擎对官网进行访问,结果证实了我的想法,在 bing 访问是不会发生跳转的。

好了,既然是通过代码跳转的,那么它总要发生请求吧。究竟是从哪发生的请求呢?

为了防止跳转过快的情况,先在百度页面中复制一个链接,打开一个新的窗口并且打开开发者模式,再将链接复制到浏览器进行访问。如下图:

这时候就能够将首次访问的所有请求获取到,并且在准备发生自动跳转之前你有足够的时间来取消页面请求,就能够得到上图的输出。通过上图的网络输出可知,其他都是正常的官网请求,唯独 data.joysoo.xyz 是一个不知来路的域名。而且请求的 JavaScript 文件也足够可疑,连名字都是经过加密的样子。

嗯...在截获了当前的信息后,让其跳转看看还有什么网络输出,如下图:

噢,这个网站也尝试加载 data.joysoo.xyz 的 DL1iBa6yb(这里与官网的 JavaScript 已经不一样了)。至此,从信息层面能够通过 data.joysoo.xyz 域名可以将两个网站的关联串联起来了,那么接下来就可通过这个域名进行代码搜索。

将客户网站的 PHP 代码放入 VSCode 中进行全局搜索。如下图:

这个域名恰巧只有一个 php 文件匹配成功。从这里也可以看出为什么无论从哪个页面跳转都会进行恶意跳转,因为这个脚本是直接植入到页面的 ICP banner 模块中的,而由于 ICP banner 每个页面都内嵌的,因此无论哪个页面都会发生跳转。

那么这个脚本是从哪里植入的呢?

从上图可知,在 log 文件中也找到两条与这个域名相关的记录,如下图:
呃...这里有一条 update 语句将这个脚本写入到数据库里面,估计是被 SQL注入了吧。

至此,整个解决思路也形成了。

由于当前的 PHP 框架会在网页访问时自动生成新的页面,因此只需要重新更新数据库内容即可恢复。但是,这样也只是治标不治本,最最重要的还是加强对云服务器以及应用的防护才是重中之重,不然问题还是会重新出现。

相关推荐
码出钞能力25 分钟前
更换libc.so导致linux变砖,通过LD_PRELOAD挽救
linux·服务器
小马学嵌入式~25 分钟前
嵌入式 SQLite 数据库开发笔记
linux·c语言·数据库·笔记·sql·学习·sqlite
中新赛克40 分钟前
双引擎驱动!中新赛克AI安全方案入选网安创新大赛优胜榜单
人工智能·安全
小猪咪piggy1 小时前
【JavaEE】(24) Linux 基础使用和程序部署
linux·运维·服务器
Haven-1 小时前
Linux常见命令
linux·基本指令
IT 小阿姨(数据库)1 小时前
PgSQL中pg_stat_user_tables 和 pg_stat_user_objects参数详解
linux·运维·数据库·sql·postgresql·oracle
MChine慕青2 小时前
顺序表与单链表:核心原理与实战应用
linux·c语言·开发语言·数据结构·c++·算法·链表
虎头金猫2 小时前
如何在Linux上使用Docker在本地部署开源PDF工具Stirling PDF:StirlingPDF+cpolar让专业操作像在线文档一样简单
linux·运维·ubuntu·docker·pdf·开源·centos
努力学习的小廉3 小时前
深入了解linux系统—— 线程同步
linux·服务器·数据库·算法
2301_810154553 小时前
VM中CentOS 7密码重置
linux·运维·centos