一个有趣的暗链

今天吃完午饭,无意听到同事说起了以前查网站暗链的事。他说有一种暗链其实隐藏得挺深的,正常去访问是不会触发,而当百度等搜索引擎的爬虫去爬取该页面时,就会进行跳转。从而将爬虫引入到黑客指定的站点,来提升指定站点的排名。

思考了下,感觉比那些直接简单粗暴直接跳转要妙多了。饭后去网上找了下,没有找到相关代码。打算自己写一个(可能真实的案例不是这么写的)。

一、代码实现

下面我们尝试从黑帽SEO的角度来思考问题和编写代码。我实现的方式是通过js判断ua,来识别是否是百度爬虫,从而决定是否跳转。代码很简单,具体如下:

1
2
3
4
5
6
7
8
9
10
11
<script>
window.onload = function(){
var keyword = "baidu"; //关键字
var my_site = "http://gv7.me"; //要跳转到的网站
var ua = navigator.userAgent;
if(ua.toLowerCase().indexOf(keyword) >= 0){ //判断ua是否是百度爬虫
window.location.href=my_site;
}
}
</script>

为了加强隐僻性,我们对以上代码进行混淆和压缩。

最终测试页面代码为:

1
2
3
4
5
6
7
8
9
10
11
12
<html>
<head>
<title>test for hack seo</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body>
<h1>test for hack seo!</h1>
</body>
<script>
eval(function(p,a,c,k,e,d){e=function(c){return(c<a?"":e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)d[e(c)]=k[c]||e(c);k=[function(e){return d[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;}('5.8=6(){1 2="9";1 4="a://b.7";1 3=c.h;g(3.i().d(2)>=0){5.e.f=4}}',19,19,'|var|keyword|ua|my_site|window|function|me|onload|baidu|http|gv7|navigator|indexOf|location|href|if|userAgent|toLowerCase'.split('|'),0,{}))
</script>
</html>

二、演示效果

演示前,我们先为chrome浏览器添加一个百度爬虫的UA,以便模拟百度爬虫流量网页。

1
Mozilla/5.0 (compatible; Baiduspider/2.0; +http://www.baidu.com/search/spider.html)

为chrome浏览器添加一个百度爬虫的UA。

注意:使用burp或者chrome插件User-Agent Switcher Options修改的UA是无效的,因为它们只是修改了浏览器发送的数据包中的UA,而没有修改浏览器真正的UA。

通过测试发现,在使用默认ua访问时,页面没有跳转。切换UA后成功跳转到我的博客。

效果展示

三、总结

写这篇文章并非鼓励大家去挂暗链,而是从攻防的角度,了解一些挂暗链的思路。使得在对抗黑帽SEO时能多些思路。比如就可以将浏览器UA修改为百度等搜索引擎爬虫的UA,尝试找出隐藏的暗链。

参考文章