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

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

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

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

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

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

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

好了,既然是通过代码跳转的,那么它总要发生请求吧。究竟是从哪发生的请求呢?
为了防止跳转过快的情况,先在百度页面中复制一个链接,打开一个新的窗口并且打开开发者模式,再将链接复制到浏览器进行访问。如下图:
WX20240627-170855.png
这时候就能够将首次访问的所有请求获取到,并且在准备发生自动跳转之前你有足够的时间来取消页面请求,就能够得到上图的输出。通过上图的网络输出可知,其他都是正常的官网请求,唯独 data.joysoo.xyz 是一个不知来路的域名。而且请求的 JavaScript 文件也足够可疑,连名字都是经过加密的样子。

嗯…在截获了当前的信息后,让其跳转看看还有什么网络输出,如下图:
WX20240627-171010.png
噢,这个网站也尝试加载 data.joysoo.xyz 的 DL1iBa6yb(这里与官网的 JavaScript 已经不一样了)。至此,从信息层面能够通过 data.joysoo.xyz 域名可以将两个网站的关联串联起来了,那么接下来就可通过这个域名进行代码搜索。

将客户网站的 PHP 代码放入 VSCode 中进行全局搜索。如下图:
image.png
这个域名恰巧只有一个 php 文件匹配成功。从这里也可以看出为什么无论从哪个页面跳转都会进行恶意跳转,因为这个脚本是直接植入到页面的 ICP banner 模块中的,而由于 ICP banner 每个页面都内嵌的,因此无论哪个页面都会发生跳转。

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

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

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/1475026.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

innovus:设置instance padding

我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧? 拾陆楼知识星球入口 相关文章链接: innovus:inst pad 、cell pad 、module pad 、clock cell spacing设置方法 前面文章讲到如何设置各种padding的方法,有星球小伙伴问道&…

七、Docker常规软件安装

目录 一、总体步骤 二、安装tomcat 1、docker hub上查找tomcat镜像 三、安装MySQL 1、查看MySQL镜像 2、拉取MySQL镜像到本地,本次拉取MySQL5.7 3、使用MySQL镜像创建容器 4、使用Windows数据库工具,连接MySQL实例 5、常见问题 6、创建MySQL容器实例 7、新…

lspci

【原】Linux之PCIE三种空间解析 PCIe学习笔记——2.PCIe配置空间 PCIE学习(2)PCIE配置空间详解 开发者分享 | 使用 lspci 和 setpci 调试 PCIe 问题 b : 字节 w:word L: 4byte

OpenCV 笔记(35):频域低通滤波——高斯低通滤波器、巴特沃斯低通滤波器

1. 高斯低通滤波器 高斯低通滤波器(GLPF)是一种具有平滑频域特性、较慢衰减速度和良好截止频率附近衰减效果的滤波器。在图像处理中有着广泛的应用。 高斯低通滤波器的传播函数有如下的形式: 其中,D(u,v) 表示中心点到频域中心的…

如何监控 PostgreSQL 中表空间的使用情况并进行合理的管理?

文章目录 如何监控 PostgreSQL 中表空间的使用情况并进行合理的管理 一、引言 在 PostgreSQL 数据库中,表空间(Tablespace)是用于管理数据库对象存储位置的逻辑存储区域。有效地监控和管理表空间的使用情况对于确保数据库的性能、优化存储资…

(一)、python程序--模拟电脑鼠走迷宫

一、绪论 1、简介 电脑鼠走迷宫是一种比赛,制作实物电脑鼠小车在迷宫找目标点,用时最短者获胜。考验参赛选手软硬件结合的能力。 2、走迷宫模拟软件中已实现功能 1、点击迷宫墙壁可编辑迷宫,并且可保存和加载迷宫形状文件; 2、…

聚观早报 | 蚁天鉴2.0发布;理想汽车推送无图NOA

聚观早报每日整理最值得关注的行业重点事件,帮助大家及时了解最新行业动态,每日读报,就读聚观365资讯简报。 整理丨Cutie 7月8日消息 蚁天鉴2.0发布 理想汽车推送无图NOA 特斯拉推送FSD v12.4.3 iQOO Neo9s Pro配色公布 百川智能AI健康…

#数据结构 链表

单向链表 1. 概念 单向链表 单向循环链表 双向链表 双向循环链表 解决:长度固定的问题,插入和删除麻烦的问题 1、逻辑结构: 线性结构 2、存储结构: 链式存储 链表就是将 结点 用链串起来的线性表,链就是 结点 中的…

Banana Pi BPI-M5 Pro 低调 SBC 采用 Rockchip RK3576 八核 Cortex-A72/A53 AIoT SoC

Banana Pi BPI-M5 Pro,也称为 Armsom Sige5,是一款面向 AIoT 市场的低调单板计算机 (SBC),由 Rockchip RK3576 八核 Cortex-A72/A53 SoC 驱动,提供Rockchip RK3588和RK3399 SoC 之间的中档产品。 该主板默认配备 16GB LPDDR4X 和…

力扣-双指针1

何为双指针 双指针指向同一数组,然后配合着进行搜索等活动。 滑动窗口的时候很好使用。 167.两数之和Ⅱ-输入有序数组 167. 两数之和 II - 输入有序数组 题目 给你一个下标从 1 开始的整数数组 numbers ,该数组已按 非递减顺序排列 ,请你从…

【力扣: 15题: 三数之和】

15题: 三数之和 给你一个整数数组 nums ,判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i ! j、i ! k 且 j ! k ,同时还满足 nums[i] nums[j] nums[k] 0 。请 你返回所有和为 0 且不重复的三元组。 注意: 答案中不可以包含重复的三元组。 …

AI集成工具平台一站式体验,零门槛使用国内外主流大模型

目录 0 写在前面1 AI艺术大师1.1 绘画制图1.2 智能作曲 2 AI科研助理2.1 学术搜索2.2 自动代码 3 AI智能对话3.1 聊天机器人3.2 模型竞技场 4 特别福利 0 写在前面 人工智能大模型浪潮滚滚,正推动着千行百业的数智化进程。随着技术演进,2024年被视为是大…

C++11中新特性介绍-之(二)

11.自动类型推导 (1) auto类型自动推导 auto自动推导变量的类型 auto并不代表某个实际的类型,只是一个类型声明的占位符 auto并不是万能的在任意场景下都能推导,使用auto声明的变量必须进行初始化,以让编译器推导出它的实际类型,…

深入探索 Python 中的数据维数:高维数据处理方法与应用

Python 数据维数 在数据科学和机器学习领域,理解数据的维度是至关重要的。Python作为一种强大而灵活的编程语言,提供了丰富的工具和库来处理各种维度的数据。本文将介绍Python中数据维数的概念,以及如何使用Python库来处理不同维度的数据。 什…

算法思想总结:优先级队列

一、最后一块石头的重量 . - 力扣(LeetCode) 我们每次都要快速找到前两个最大的石头进行抵消,这个时候用优先级队列(建大堆),不断取堆顶元素是最好的!每次删除堆顶元素后,可以自动调整&#xf…

爬虫怎么实现抓取的

1.4爬虫工程师常用的库通过图1-3我们了解到,爬虫程序的完整链条包括整理需求、分析目标、发出网络请求、文本解析、数据入库和数据出库。其中与代码紧密相关的有:发出网络请求、文本解析、数据入库和数据出库,接下来我们将学习不同阶段中爬虫…

SOAMANAGER 弹不出浏览器

SOAMANAGER 弹不出浏览器 一、打开SOAMANAGER的其他方法 使用事务码SICF打开SOAMANAGER,执行路径default_host/sap/bc/webdynpro/sap/appl_soap_management 使用SE24对类CL_GUI_HTML_VIEWER中的方法DETACH_URL_IN_BROWSER 打断点 在前台创建一个URL的链接。

数组算法(二):交替子数组计数

1. 官方描述 给你一个二进制数组nums 。如果一个子数组中 不存在 两个 相邻 元素的值 相同 的情况,我们称这样的子数组为 交替子数组 。 返回数组 nums 中交替子数组的数量。 示例 1: 输入: nums [0,1,1,1] 输出: 5 解释&#…

Spring IOC基于XML和注解管理Bean

IoC 是 Inversion of Control 的简写,译为“ 控制反转 ”,它不是一门技术,而是一种设计思想,是一个重要的面向对象编程法则,能够指导我们如何设计出 松耦合、更优良的程序。 Spring 通过 IoC 容器来管理所有 Java 对象…

【Unity】在Unity中制作一个小车游戏

目录 第一步:设置Unity项目 第二步:设置场景 第三步:添加车辆控制脚本 第四步:将脚本附加到车辆上 第五步:运行和测试 第六步:添加更多功能(可选) 在Unity中制作一个小车游戏…