今天吃完午饭,无意听到同事说起了以前查网站暗链的事。他说有一种暗链其实隐藏得挺深的,正常去访问是不会触发,而当百度等搜索引擎的爬虫去爬取该页面时,就会进行跳转。从而将爬虫引入到黑客指定的站点,来提升指定站点的排名。
思考了下,感觉比那些直接简单粗暴直接跳转要妙多了。饭后去网上找了下,没有找到相关代码。打算自己写一个(可能真实的案例不是这么写的)。
一、代码实现
下面我们尝试从黑帽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){ 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)
|
注意:使用burp或者chrome插件User-Agent Switcher Options
修改的UA是无效的,因为它们只是修改了浏览器发送的数据包中的UA,而没有修改浏览器真正的UA。
通过测试发现,在使用默认ua访问时,页面没有跳转。切换UA后成功跳转到我的博客。
三、总结
写这篇文章并非鼓励大家去挂暗链,而是从攻防的角度,了解一些挂暗链的思路。使得在对抗黑帽SEO时能多些思路。比如就可以将浏览器UA修改为百度等搜索引擎爬虫的UA,尝试找出隐藏的暗链。
参考文章