站长之家,中国草根站长新闻、建站经验、素材资源交流平台!
分类导航

站长新闻|网站运营|建站经验|网站优化|站长资源|站长源码|

服务器之家 - 站长之家 - 网站优化 - 黑帽SEO高手技能:隐藏暗链的十大方法

黑帽SEO高手技能:隐藏暗链的十大方法

2020-10-22 21:49互联网 网站优化

暗链也称黑链,即隐蔽链接,是黑帽seo的作弊手法。暗链其目的就是利用高权重网站外链来提升自身站点排名。

一、介绍

暗链也称黑链,即隐蔽链接,是黑帽seo的作弊手法。暗链其目的就是利用高权重网站外链来提升自身站点排名。

黑帽SEO高手技能:隐藏暗链的十大方法

一般来说,暗链是由攻击者入侵网站后植入的,暗链在网页页面上不可见或者极易被忽略,但是搜索引擎仍然可以通过分析网页的源代码收录这些链接,如果有大量网站甚至一些高权重的网站都链向它们,积少成多,可以迅速提高权重,获得高额流量。

暗链指向的网站绝大多数是博彩、非法游戏私服等黑灰色产业,其中博彩类域名数量最多。而暗链宿主往往是权重较高的网页,例如ZF网站、教育网站等。

比如:一个看试正常的网页:

黑帽SEO高手技能:隐藏暗链的十大方法

 

其源码中可能含有的暗链:

二、暗链隐藏方式

暗链主要利用css、JS来控制链接的隐藏方式,通过对大量样本的分析,本文总结了几种常用挂暗链的手法。

1、 链接位于页面可见范围之外。可以将position位置属性设置成负数,则链接无法显示在可见页面之内。

  1. <div style="position:absolute;left:expression_r(1-900);top:expression_r(3-999);"><a href="暗链">关键词</a></div>  
  2. <div style="position:absolute; top:-999px;right:-999px;"><a herf="暗链">关键词</a></div>  
  3. <div style="text-indent:-9999em; display:block;float:left"><aherf="暗链">关键词</a></div> 
元素向前缩进为负值,即在可见范围之外

2、链接颜色与背景色相同,链接文字使用低像素。

  1. <a herf=# style="color:#FFFFFF; ">关键词</a> 
  2. <a herf=# style="font-size:1px;">关键词</a> 
  3. <a herf=# style="line-height:1px;">关键词</a> 

3、利用跑马灯marquee属性,链接以跑马灯形式迅速闪现,跑马灯的长宽设置很小,同时将闪现的频率设置很大,使得查看页面时不会有任何影响。

  1. <marquee height=1width=4 scrollamount=3000scrolldelay=20000><a href= "暗链">关键字</a></marquee> 

4、利用display:none和visibility:hidden隐藏区域里的内容。

  1. <div style="display:none;"><a href="暗链">关键字  </a></div> 
  2. <div style="visibility:hidden;"><a href="暗链">关键字  </a></div> 

以上四种是惯用的挂暗链的方法,但搜索引擎也可能会对这些方法进行识别和打击,如果代码没有任何处理的话,那么这些外链将有可能全部被降权。即便如此,这几种仍然是目前最常见的暗链隐藏方法。为了不被搜索引擎识别,攻击者利用JS向页面中写入ccs样式,并设置其属性,见5,6。由于搜索引擎对这种JS代码的内部实质意义还无法识别,因此也成为了挂暗链的一种常见形式。

5、利用JS向页面中写入ccs样式。

  1. <script language="JAVAscript" type="text/JavaScript"
  2. document.write("<div style='display:none;'>"); 
  3. </script> 
  4. <div><ahref= "暗链">关键字  </a> 
  5. <script language="javascript" type="text/javascript"
  6. document.write("</div>"); 
  7. </script> 

注:除了设置display:none属性外,也可以设置前面我们提到的其他隐藏方法。

6、利用JS修改样式属性

  1. <div id="anlian"> <a href="暗链">关键字</a></div> 
  2. <script language=javascript> 
  3. document.getElementById("anlian").style.display="n"+"one" 
  4. </script> 

7、利用遮挡层隐藏暗链。z-index属性可以设置元素的堆叠顺序,z-index值越小其堆叠顺序越靠后,因此可以利用其它层来遮挡暗链。

  1. <div class="father" style="position:relative"
  2.    <div class="topLever" style="position:absolute;left:0;top:0;z-index:999; width:90%;height:100px;"> 遮挡层:可以放图片等  </div> 
  3.    <div class="hideDontent">隐蔽层:可以放暗链</div> 
  4. </div> 

8、利用iframe创建隐藏的内联框架

  1. <iframe src="暗链" style="display:none"></iframe> 

style设置display为none,则无法显示内联框,可隐藏暗链。

或者也可以用JS代码写入,会更隐蔽一些:

  1. <script> 
  2. document.write('<iframe src="暗链" style="display:none"></iframe>'
  3. </script> 

使用JS对内容进行隐藏这种手段中,高手还可能使用混淆加密,比如用JShaman等JS代码混淆平台对JS代码进行处理,如上面这一段JS代码经JShaman混淆后,可以成为:

  1. <script> 
  2. var _0x3c56 = [ 
  3.     'write'
  4.     '<iframe\\x20src=\\x22暗链\\x22\\x20style=\\x22display:none\\x22></iframe>' 
  5. ]; 
  6. var _0x1479 = function (_0x5a7d11, _0x279445) { 
  7.     _0x5a7d11 = _0x5a7d11 - 0x0; 
  8.     var _0x311e11 = _0x3c56[_0x5a7d11]; 
  9.     return _0x311e11; 
  10. }; 
  11. document[_0x1479('0x0')](_0x1479('0x1')); 
  12. </script> 

甚至:

  1. <script> 
  2. var _0x109e = [ 
  3.     'd3JpdGU='
  4.     'PGlmcmFtZSBzcmM9Iuaal+mTviIgc3R5bGU9ImRpc3BsYXk6bm9uZSI+PC9pZnJhbWU+' 
  5. ]; 
  6. var _0x3eee = function (_0x30aeac, _0x5ab95f) { 
  7.     _0x30aeac = _0x30aeac - 0x0; 
  8.     var _0x589d11 = _0x109e[_0x30aeac]; 
  9.     if (_0x3eee['KtIQvB'] === undefined) { 
  10.         (function () { 
  11.             var _0x394a34 = function () { 
  12.                 var _0x3915e0; 
  13.                 try { 
  14.                     _0x3915e0 = Function('return\\x20(function()\\x20' + '{}.constructor(\\x22return\\x20this\\x22)(\\x20)' + ');')(); 
  15.                 } catch (_0x523ee0) { 
  16.                     _0x3915e0 = window; 
  17.                 } 
  18.                 return _0x3915e0; 
  19.             }; 
  20.             var _0x467e0e = _0x394a34(); 
  21.             var _0x535ad7 = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/='
  22.             _0x467e0e['atob'] || (_0x467e0e['atob'] = function (_0xc8f13a) { 
  23.                 var _0x71b2cc = String(_0xc8f13a)['replace'](/=+$/, ''); 
  24.                 for (var _0x486eb7 = 0x0, _0x46460f, _0x3cc52b, _0x531b6d = 0x0, _0x438bde = ''; _0x3cc52b = _0x71b2cc['charAt'](_0x531b6d++); ~_0x3cc52b && (_0x46460f = _0x486eb7 % 0x4 ? _0x46460f * 0x40 + _0x3cc52b : _0x3cc52b, _0x486eb7++ % 0x4) ? _0x438bde += String['fromCharCode'](0xff & _0x46460f >> (-0x2 * _0x486eb7 & 0x6)) : 0x0) { 
  25.                     _0x3cc52b = _0x535ad7['indexOf'](_0x3cc52b); 
  26.                 } 
  27.                 return _0x438bde; 
  28.             }); 
  29.         }()); 
  30.         _0x3eee['rdHpXB'] = function (_0xe315b9) { 
  31.             var _0x14340b = atob(_0xe315b9); 
  32.             var _0x35a6d6 = []; 
  33.             for (var _0x453fdd = 0x0, _0x32d7e4 = _0x14340b['length']; _0x453fdd < _0x32d7e4; _0x453fdd++) { 
  34.                 _0x35a6d6 += '%' + ('00' + _0x14340b['charCodeAt'](_0x453fdd)['toString'](0x10))['slice'](-0x2); 
  35.             } 
  36.             return decodeURIComponent(_0x35a6d6); 
  37.         }; 
  38.         _0x3eee['innGSt'] = {}; 
  39.         _0x3eee['KtIQvB'] = !![]; 
  40.     } 
  41.     var _0x2b07cc = _0x3eee['innGSt'][_0x30aeac]; 
  42.     if (_0x2b07cc === undefined) { 
  43.         _0x589d11 = _0x3eee['rdHpXB'](_0x589d11); 
  44.         _0x3eee['innGSt'][_0x30aeac] = _0x589d11; 
  45.     } else { 
  46.         _0x589d11 = _0x2b07cc; 
  47.     } 
  48.     return _0x589d11; 
  49. }; 
  50. document[_0x3eee('0x0')](_0x3eee('0x1')); 
  51. </script> 

也就是经过JShaman混淆的JS代码,可以隐藏上面的如暗链地址、iframe关键字、style中的display:none等信息。使插入的脚本简直无法被发现。简直不要太可怕!这个方式应该着重被牢记。

 

9、利用重定向机制。在跳转之前的页面写入不相关的链接,通过快速跳转到正常页面,使用户无法察觉。

  1. <script> setTimeout("window.location= "index.html",0.1); </script> 
  2. <body leftMargin=0 topMargin=0 scroll=no><div> <a href=“暗链”>关键字 </div></body> 

利用setTimeout 在跳转到正常页面index.html之前有0.1s停留在当前页面,页面中的暗链不易被察觉。

  1. <script language="javascript" type="text/javascript">  
  2. window.location.href="lianjie"
  3. </script>  

10、利用<meta>标签插入链接。位于网页html源码头部内的<meta>标签,提供有关页面的元信息,是搜索引擎判定网页内容的主要根据, 攻击者可以在标签中插入大量与网页不相关的词语以及链接。

  1. <meta http-equiv="refresh" content="1"; url="暗链" /> 
  2. <meta name="xxxx"content="黑链及描述"

三、总结

以上总结了挂暗链的常用手法,相信还有一些其他方式被攻击者利用,不难发现凡是可以隐藏文本信息的地方都可以挂暗链,比如我们可以通过创建下拉菜单,将非法链接混合在合法菜单之中,如果菜单足够长或者没人去点击的话,也很难察觉。

被植入暗链的网页不仅对于网站本身的信誉形象产生负面影响,更严重扰乱了搜索引擎排名机制。为了防止网站被挂黑链,最重要的当然是给网站部署WAF,大型网站资金预算充足的可以购买硬件或云WAF,中小网站甚至个人网站可以部署软件WAF,如:ShareWAF,其成本低、易接入。

做好网站安全防护是防挂马的最佳手段。此外,我们还需加强对网站的监管,采取一些防范措施,比如定期查看网站的源代码,使用站长工作检查黑链、死链,定期进行网站漏洞检测、漏洞修复、后门检测等,提高网站安全性等。

延伸 · 阅读

精彩推荐