反黑教程:手把手教你应对搜索引擎劫持攻击

安全 黑客攻防
很多站长可能都遇到过一种黑客攻击方式,就是在搜索引擎结果页中看到自己的网站,但是点开后却跳转到一些其他网站,比如博彩,虚假广告,淘宝搜索页面等等。

很多站长可能都遇到过一种黑客攻击方式,就是在搜索引擎结果页中看到自己的网站,但是点开后却跳转到一些其他网站,比如博彩,虚假广告,淘宝搜索页面等等。

[[111415]]

这种情况产生的直接后果就是:

用户流失。试想如果你做的是个电商网站,做了很多的SEO优化或者竞价排名后,用户却再也无法通过搜索引擎找到你的网站,这是多么悲催的一件事。

网站被拦截。如果你的网站被劫持到一些非法站点上导致网站被标记为非法、赌博或者恶意代码时,可能直接会被各种浏览器和搜索引擎标记为“恶意网站”从而直接拦截。世间最痛苦的事莫过于此,我是好人,特么的可我被人阴了……

可信度降低。你苦心经营网站多年,树立口碑不容易。一日被黑,日日被劫持。从此以后用户通过搜索引擎打开你的网站不是色情就是赌博。正常业务啥都没了,也别再谈什么可信度和口碑了。

其实当站长们遇到搜索引擎劫持时根本不用慌,我先提供两种解决方案:

1、阅读本文

回到正题,昨天晚上有个用户找到我,说是网站搜索结果页被劫持了,弄现在到处都认为他的网站是个博彩网站,各路封杀蜂拥而至。今天一上班就帮这个用户把网站处理干净,同时也加入了网站卫士的防护体系,整理出排查问题的全过程供各位站长们参考。

分析中使用到的工具:Fiddler (官网:http://www.telerik.com/fiddler),国内很多下载站也能下到这个工具。

场景重现:用户在百度输入:XXX(他网站的关键字)

结果页中能看到,但是点开后立刻跳转到一个博彩网站

然后的故事大家都知道了,悲剧如下图:

反黑教程:手把手教你应对搜索引擎劫持攻击

手把手第一步:判断劫持方式

这一步主要判断当前劫持是通过javascript代码实现还是通过PHP/ASP等脚本代码实现。

打开fiddler,先按F11下个HTTP请求断点,然后点击百度结果页,去fiddler里看请求。点一下右边绿色的这个按钮

反黑教程:手把手教你应对搜索引擎劫持攻击

每点击一步,就会通过一个请求。从结果看到本次搜索引擎劫持只用了3步,此时我们能得出一个结论:本案例中的这个网站劫持是通过PHP程序代码实现的劫持,劫持过程如下图:

反黑教程:手把手教你应对搜索引擎劫持攻击

从百度链接点过来会跳到用户网站本身,此时没有加载任何js和css等资源就直接又跳到博彩网站86896.com。

这一步是如何实现从用户网站跳转到博彩网站的呢,原理其实很简单,请看下图:

反黑教程:手把手教你应对搜索引擎劫持攻击

这个跳转的HTTP请求代码是302,通过一个location重定向到博彩网站。由于该网站使用的是PHP程序,在PHP里通过header()函数即可实现页面重定向。

手把手第二步:查找可疑代码

既然知道了劫持的原理和目标博彩网站,就比较容易查出恶意代码了。该用户的服务器是windows2003,通过远程连接上去,在windows系统下可以用findstr命令轻松查找任意文本所在的文件位置。在本案例中我们只需要查找哪些文件里出现了86896这个关键字即可。命令行下构造查询命令如下:

findstr /s /i “86896″ D:\web\xxx.org\*.php

关键字后面跟的是网站根目录,这行命令的意思是遍历网站根目录下的所有php文件,查找出其中包含“86896“字符的文件。执行这个命令我们可以得到以下结果输出:

反黑教程:手把手教你应对搜索引擎劫持攻击

通过结果可以很明显的看出,黑客入侵了该网站并且修改了discuz论坛里\source\class\class_core.php这个核心文件,在这个文件里面加入了实现劫持的location跳转恶意代码。

这个黑客植入的恶意代码还是比较“小白“的,没有用任何加密等其他隐藏手段,直接可以通过关键字查找出来。完整的恶意代码如下图:

反黑教程:手把手教你应对搜索引擎劫持攻击

这段恶意代码的功能就是把所有user-agent和referer里包含搜索引擎信息的网站访问请求内容全部劫持为博彩网站,帮用户删除这一段PHP代码后,网站就立刻恢复正常啦~

通过这个案例分析,希望让站长知道,这种搜索引擎流量劫持攻击的技术含量并没有那么深不可测,通过两个步骤:

首先判断劫持方式,如果是js代码劫持,找出来恶意js代码删除就行,如果是脚本劫持,请参考本文介绍的方式。

其次就是用findstr(windows)命令或者grep(linux)命令去服务器上找出恶意代码所在的文件,删除恶意代码即可。

责任编辑:蓝雨泪 来源: 360网站卫士博客
相关推荐

2021-06-18 09:02:26

FlaskES搜索 Python

2020-10-23 09:03:28

Flask

2021-08-24 10:02:21

JavaScript网页搜索 前端

2022-02-25 09:41:05

python搜索引擎

2024-11-05 16:40:24

JavaScript搜索引擎

2010-04-07 09:25:00

2023-08-26 09:20:23

2011-01-10 14:41:26

2011-05-03 15:59:00

黑盒打印机

2021-07-14 09:00:00

JavaFX开发应用

2010-05-11 14:45:13

2009-12-15 16:44:07

水星路由器设置教程

2023-07-04 07:37:20

AzureOpenAI操作手册

2011-02-22 13:46:27

微软SQL.NET

2021-02-26 11:54:38

MyBatis 插件接口

2021-12-28 08:38:26

Linux 中断唤醒系统Linux 系统

2022-07-27 08:16:22

搜索引擎Lucene

2022-12-07 08:42:35

2023-04-26 12:46:43

DockerSpringKubernetes

2022-01-08 20:04:20

拦截系统调用
点赞
收藏

51CTO技术栈公众号