网站劫持

网站劫持是指当用户打开一个网址的时候,出现一个不归属于网站范畴内的一个广告页面,或者是直接就跳转到某一个不是这个网站所属的页面。
网站劫持分为以下几大类:

一、搜索引擎劫持

搜索引擎劫持简称搜索劫持,其实就是从搜索引擎来的流量自动跳转到指定的网页。可以通过未经用户授权,自动修改第三方搜索引擎结果的软件实现,通常这类程序会在第三方搜索引擎的结果中添加自己的广告或加入网站链接获取流量等。
搜索引擎劫持分为三类:

  1. 整站劫持:劫持者通过在网站页面载入js或web服务器内植入代码,全局劫持网站,导致整个网站跳转到其他网址。劫持脚本代码分为客户端版(JS)和服务端版(php、asp、jsp等)两种。
    客户端代码:
// 方式1:判断referrer(从哪个页面链接过来)
var url = "http://xxxxx.bc.com"; // 博彩网站
var ref = document.referrer;
var bot = ['baidu', 'google', 'yahoo', 'bing', 'soso', 'sogou', '360.cn', 'so.com','youdao', 'anquan', 'sm.cn', 'haosou'];
for (var i in bot) {if(ref.indexOf(bot[i]) != -1) {window.location.href = url;}
}
// 方式2:判断user-agent
var url = "http://xxxxx.bc.com"; // 博彩网站
var ua = navigator.userAgent.toLowerCase();
if(ua.match(/baidu/)== 'baidu'){window.location.href = url;
}

服务端代码(PHP)

<?php
// 博彩页面
$dsturl = "https://www.xxx.bc.com";
$referer = @$_SERVER["HTTP_REFERER"];
$agent = strtolower(@$_SERVER["HTTP_USER_AGENT"]);if(strstr($referer, "baidu"))
{header("Location: $dsturl");
}if(strstr($agent, "google"))
{header("Location: $dsturl");
}
  1. 关键字劫持:比如百度搜索某网站关键词,但是点击进去之后却跳转到别的非法网站上,这种劫持方式会比较隐蔽,只会针对一部分的关键单独跳转,这是整站劫持方式的升级版。
  2. 快照劫持:搜索引擎爬取网站标题、关键词、描述时,抓取到黑客设定的内容。
<?php
echo "<!Doctype html>";
echo "<html>";
echo "<head><meta charset='utf-8'/>";
//UserAgent劫持
//echo "<script>if(navigator.userAgent.toLocaleLowerCase().indexOf(\"baidu\")==-1){document.title=\"快照劫持示例\"}</script>";
//Referrer劫持
echo "<script>if(document.referrer.toLocaleLowerCase().indexOf(\"baidu\")==-1){document.title=\"快照劫持示例\"}</script>";
echo "<title>澳门皇家赌场</title>";
echo "</head>";
echo "<body><h1>请检查网站标题变化</h1></body>";
echo "</html>";// 博彩页面
$dsturl = "https://www.hao123.com";
$referer = @$_SERVER["HTTP_REFERER"];
$agent = strtolower(@$_SERVER["HTTP_USER_AGENT"]);if(strstr($referer, "baidu"))
{$content=file_get_contents($dsturl);echo $content;
}if(strstr($agent, "baidu"))
{$content=file_get_contents($dsturl);echo $content;exit;
}
?>

二、网络劫持

网络劫持分为2类:

  1. DNS劫持(域名劫持):是互联网攻击的一种方式,通过攻击域名解析服务器(DNS),或伪造域名解析服务器(DNS)的方法,把目标网站域名解析到错误的地址从而实现用户无法访问目标网站的目的。
  2. HTTP劫持:HTTP劫持通常不是定时在你的系统中出现的,只有病毒引起的恶意推广才会不停地出现在你的视线中。并且HTTP劫持往往是在你进行网络操作刚刚开始的时候,例如,你刚刚打开了旺旺、登录邮箱或访问的网站还未完全打开时,劫持才会出现。这种劫持导致的最常见的现象就是弹出宣传页面,这种页面会突然跳出来,而且显示速度很快,比你要访问的网站提前很多。

三、浏览器劫持

浏览器劫持是指网页浏览器(IE等)被恶意程序修改。常见现象为主页及互联网搜索页变为不知名的网站、经常莫名弹出广告网页输入正常网站地址却连接到其他网站。收藏夹内被自动添加陌生网站地址等等。

搜索引擎劫持的判断方法

如果通过程序脚本快速验证网站被劫持?

  1. 整站劫持(客户端版JS) - 判断Referer/User Agent 的验证方法:
    程序获取网站源码(包括js文件源码),通过关键字判断是否劫持。关键字如:document.referrer 、navigator.userAgent 、window.location等。
  2. 整站劫持(服务端版PHP) - 判断Referer/User Agent 的验证方法:
    第一步,程序模拟Referer或User Agent正常访问网站,记录网站响应状态码200还是302;第二步,程序模拟百度、谷歌等搜索引擎的Referer或User Agent访问网站, 记录网站响应状态码200还是302;第三步,判断前两步的状态码是否相同,不同就判断是劫持。
  3. 关键字劫持,判断方法与整站劫持相同。
  4. 快照劫持,验证方法:
    第一步,程序模拟Referer或User Agent正常访问网站,记录网站标题和body内容(前10个字符);第二步,程序模拟百度、谷歌等搜索引擎的Referer或User Agent访问网站, 记录网站标题和body内容(前10个字符);第三步,判断前两步的标题或内容是否相同,不同就判断是劫持。

参考文献:
https://www.cnblogs.com/zhibolife/p/3690596.html
https://www.cnblogs.com/byeb/articles/9942858.html
https://www.cloudxns.net/Support/detail/id/2803.html
https://zhuanlan.zhihu.com/p/31344484
https://www.freebuf.com/articles/web/153788.html
https://www.upyun.com/tech/article/152/%E7%BD%91%E7%AB%99%E8%8E%AB%E5%90%8D%E8%B7%B3%E8%BD%AC%EF%BC%88%E4%B8%8A%EF%BC%89%EF%BC%9A%E4%BB%8E%E7%99%BE%E5%BA%A6%E8%B0%88%E4%BB%80%E4%B9%88%E6%98%AF%E7%BD%91%E7%AB%99%E5%8A%AB%E6%8C%81%EF%BC%9F.html
https://ziyuan.baidu.com/college/articleinfo?id=939

[渗透]网站劫持分析与验证方法总结相关推荐

  1. 解决ajax劫持,Ajax实现检测网站劫持的方法

    这次给大家带来Ajax实现检测网站劫持的方法,Ajax实现检测网站劫持的注意事项有哪些,下面就是实战案例,一起来看一下. https可以彻底解决劫持的问题.但是一般虚拟主机都不支持 https,难道h ...

  2. 【应急案例】真实网站劫持案例分析

    1.  概述 上段时间一直忙于处理大会安全保障与应急,借助公司云悉情报平台,发现并处置几十起网站被劫持的情况.对黑客SEO技术颇有感觉.正好这段时间有时间,把以前遇到比较有趣的案例和大家分享一下.里面 ...

  3. 如何处理网站页面劫持、网站页面劫持原理及解决方法

    2018年12月6日,百度搜索资源平台发布了一篇名为<关于近期出现网站劫持用户问题的公告>,也就是说,虽然我们在不断变化算法规则,但还是有不法分子在钻算法规则的漏洞.对于网站劫持,相信做互 ...

  4. 解决ajax劫持,Ajax 实现网站劫持的检测方法

    https可以彻底解决劫持的问题.但是一般虚拟主机都不支持 https,难道http只能任流氓们恶意劫持么? 既然只有第一次访问时才会出现抽奖链接,通过JS在浏览器中检测,如果发现 被植入的 代码,则 ...

  5. 人工智能软件的分析与验证(1) - AI软件的可靠性与落地方法

    人工智能软件的分析与验证(1) - AI软件的可靠性与落地方法 随着深度学习革命的不断发展,AI算法驱动的软件产品越来越影响我们的生活.比如人脸识别.机器翻译等应用越来越广泛,技术也在像纵深方向发展, ...

  6. 便携式激励vs形式化vsUVM验证方法在IP块的整个生命周期中的比较分析

    摘要-验证技术和方法不断发展,以应对日益严峻的验证挑战.当今行业的最新技术是基于UVM和基于形式化(Formal)的验证流程.事实证明,这两种技术都可以显著提高验证质量,但缺点是测试用例或激励不能&q ...

  7. 易基因:多组学关联分析及组学分子实验验证方法(表观组+转录组+微生物组)|干货系列

    大家好,这里是专注表观组学十余年,领跑多组学科研服务的易基因. 生物过程具有复杂性和整体性,单组学数据难以系统全面解析复杂生理过程的分子调控机制.而多组学(Multi-omics)联合分析可同时实现从 ...

  8. 域渗透提权分析工具 BloodHound 1.3 中的ACL攻击路径介绍

    本文讲的是域渗透提权分析工具 BloodHound 1.3 中的ACL攻击路径介绍, 简介和背景 2014年,Emmanuel Gras和Lucas Bouillot在" 信息通信技术研讨会 ...

  9. 关于互联网流量劫持分析及可选的解决方案

    一.劫持的方式分析 互联网的流量劫持大致分两种,第一种是DNS劫持,第二种是链路劫持.对于这两种劫持的原因有很多,比如用户电脑中毒了,DNS被篡改了,比如家用路由器被攻破了等等.但这种个人极端原因毕竟 ...

最新文章

  1. Netty详解(五):Netty TCP粘包 拆包
  2. juqery 获取radio选中的值
  3. 《大话操作系统——做坚实的project实践派》(6)
  4. linux扫描工具之nmap
  5. linux命令格式与快捷键
  6. 根据已有的WSDL文件进行WebService服务开发和部署
  7. java 调用net remoting_获取 org.springframework.remoting.RemoteAccessException: 在进行调用时无法访问远程服务?...
  8. 计算机丢失d3dx934,d3dx9_34.dll
  9. Excel-VBA基础(7):VBE开发环境的主要优化配置
  10. git bash 下backspace键无法使用的问题
  11. 区块链+珠宝供应链金融:除了解决信任问题,他们想让数字资产流动起来
  12. 人民币金额由阿拉伯数值转换成汉字大写数值的函数
  13. 数字后端基本概念介绍Blockage Link
  14. 点云 3D 目标跟踪 - AB3DMOT(IROS 2020, ECCVW 2020)
  15. 《Love and Math》(1)
  16. 内容非常全面,细节爆炸
  17. RTSP、RTMP、HTTP协议
  18. 字符串指针和指向字符串的指针变量
  19. phone4s怎么越狱?iphone4s越狱教程图文解...
  20. Servlet[DispatcherServlet]的Servlet.init()引发异常

热门文章

  1. shell 自定义alias命令
  2. 聊天界面-自适应文字
  3. 新广告法规定不能使用这些词汇,如果使用禁用词、违禁词、敏感词、极限词及限制词被罚,最高处罚100万
  4. S905电视盒数码视讯Q5/Q7刷Armbian并部署Klipper甜糖(一初识S905)
  5. Git常见问题:Your branch and ‘xxx/xxx‘ have diverged
  6. ThinkPHP源码阅读最佳工具debug_backtrace
  7. 计算机视觉资源汇总 - Part I
  8. Python统计列表中重复次数最多的前N个元素
  9. M1版MacBook性价比怎么样?
  10. Abaqus 6.13高级实例与耦合分析视频教程