英國(guó)資深SEO專家Tom Anthony近期披露了一項(xiàng)涉及Google爬蟲的技術(shù)漏洞,該漏洞可能被黑帽SEO利用,通過跨站腳本(XSS)攻擊在其他網(wǎng)站惡意注入鏈接,且這些鏈接已被證實(shí)能夠被Google爬蟲有效抓取。若此類漏洞被大規(guī)模濫用,勢(shì)必會(huì)對(duì)網(wǎng)頁(yè)權(quán)重分配機(jī)制及搜索排名結(jié)果造成顯著干擾。Tom于去年11月向Google安全團(tuán)隊(duì)提交了該漏洞的詳細(xì)報(bào)告,然而截至當(dāng)前,Google尚未采取實(shí)質(zhì)性修復(fù)措施。其官方回應(yīng)稱,現(xiàn)有防護(hù)機(jī)制理論上能夠抵御此類濫用行為,但相關(guān)技術(shù)團(tuán)隊(duì)仍在進(jìn)行驗(yàn)證評(píng)估。Google在溝通中提及存在“內(nèi)部協(xié)調(diào)障礙”,這種大型組織常見的流程效率問題或許延緩了漏洞處理的進(jìn)度。
鑒于Google在長(zhǎng)達(dá)五個(gè)月內(nèi)未推進(jìn)解決方案,Tom決定公開該漏洞細(xì)節(jié),旨在提醒網(wǎng)站管理員自查XSS漏洞風(fēng)險(xiǎn),提前采取防護(hù)措施,避免網(wǎng)站被惡意注入鏈接。Google已同意Tom披露相關(guān)信息,顯示出其對(duì)現(xiàn)有防護(hù)體系仍保有較高信心。
XSS(跨站腳本攻擊)是一種典型的代碼注入攻擊技術(shù),其名稱源于Cross Site Scripting,為避免與層疊樣式表(CSS)縮寫沖突,簡(jiǎn)稱為XSS。多數(shù)網(wǎng)站的功能模塊(如搜索功能、用戶生成內(nèi)容提交系統(tǒng)、腳本跳轉(zhuǎn)等)允許用戶通過URL參數(shù)傳遞自定義內(nèi)容,例如`domain.com/search.php?keyword`或`domain.com/?s=keyword`,其中`keyword`參數(shù)通??杀蝗我庾址鎿Q。當(dāng)攻擊者將惡意腳本代碼注入U(xiǎn)RL參數(shù)(如將`keyword`替換為`alert('XSS')`),若目標(biāo)網(wǎng)站未對(duì)輸入進(jìn)行嚴(yán)格的過濾與轉(zhuǎn)義處理,瀏覽器在渲染頁(yè)面時(shí)可能誤執(zhí)行該腳本,導(dǎo)致安全風(fēng)險(xiǎn)。XSS攻擊不僅可竊取用戶敏感信息、冒充用戶發(fā)起非法請(qǐng)求,還可通過腳本動(dòng)態(tài)修改HTML結(jié)構(gòu),這正是黑帽SEO用于植入外部鏈接的技術(shù)基礎(chǔ)。
攻擊者通過修改URL參數(shù)注入惡意腳本,當(dāng)瀏覽器執(zhí)行腳本時(shí),可在頁(yè)面HTML中動(dòng)態(tài)插入內(nèi)容,包括外部鏈接。然而,若注入鏈接僅對(duì)終端用戶可見而無法被搜索引擎爬蟲抓取,則對(duì)黑帽SEO而言缺乏利用價(jià)值。關(guān)鍵問題在于,Google爬蟲能夠解析并執(zhí)行部分JavaScript代碼,這意味著通過XSS注入的鏈接可能被Google爬蟲識(shí)別并抓取,從而進(jìn)入索引系統(tǒng)。
防范XSS攻擊需從服務(wù)器端與客戶端雙重入手。服務(wù)器端應(yīng)實(shí)施嚴(yán)格的安全過濾機(jī)制,基礎(chǔ)措施包括HTML特殊字符轉(zhuǎn)義,將``等標(biāo)簽視為普通文本而非可執(zhí)行腳本;客戶端方面,現(xiàn)代瀏覽器(如Chrome)已內(nèi)置XSS識(shí)別功能,對(duì)URL中包含的可疑腳本字符會(huì)進(jìn)行攔截提示。若Google爬蟲與Chrome瀏覽器具備同等XSS識(shí)別能力,理論上可避免抓取惡意注入鏈接。但根據(jù)Google官方文檔,當(dāng)前爬蟲使用的Chrome 41版本較老舊,缺乏該防護(hù)功能,導(dǎo)致存在XSS漏洞的網(wǎng)站可能被爬蟲抓取到被注入鏈接的頁(yè)面。
Tom以某新興銀行(Revolut)網(wǎng)站為例,該網(wǎng)站曾存在XSS漏洞(現(xiàn)已修復(fù))。Tom構(gòu)造了包含注入腳本的URL,瀏覽器執(zhí)行后會(huì)在頁(yè)面頂部生成特定鏈接。通過Google的“移動(dòng)友好性測(cè)試工具”(模擬爬蟲渲染行為),驗(yàn)證結(jié)果顯示Google能夠抓取該URL并執(zhí)行腳本,頁(yè)面頂部成功顯示被注入的鏈接——這相當(dāng)于來自銀行域名的“高質(zhì)量外部鏈接”。進(jìn)一步實(shí)驗(yàn)中,Tom將該URL提交至Google,最終該URL被成功索引,快照顯示JS注入的鏈接正常呈現(xiàn)。
為驗(yàn)證注入鏈接的實(shí)際權(quán)重傳遞效果,Tom在Revolut域名的URL中注入指向其實(shí)驗(yàn)網(wǎng)站新頁(yè)面的鏈接(該頁(yè)面此前不存在)。提交后不久,Google爬蟲抓取并索引了該新頁(yè)面,且出現(xiàn)在搜索結(jié)果中。這表明,通過XSS注入的鏈接至少具備引導(dǎo)爬蟲抓取的能力,至于其權(quán)重傳遞效果是否與正常鏈接對(duì)等,Tom因擔(dān)心對(duì)搜索生態(tài)的潛在影響而未繼續(xù)深入測(cè)試。
若此類注入鏈接具備正常鏈接的權(quán)重傳遞效果,被黑帽SEO大規(guī)模利用后,將嚴(yán)重干擾網(wǎng)頁(yè)權(quán)重分配機(jī)制,破壞搜索排名公平性。據(jù)OpenBugBounty平臺(tái)統(tǒng)計(jì),全球范圍內(nèi)存在XSS漏洞的網(wǎng)站數(shù)量高達(dá)12.5萬(wàn)個(gè),其中包括260個(gè)政府網(wǎng)站(.gov)、971個(gè)教育機(jī)構(gòu)網(wǎng)站(.edu)以及前500名高鏈接量網(wǎng)站中的195個(gè)。若這些網(wǎng)站被利用,其影響范圍之廣、危害程度之深可想而知。值得注意的是,國(guó)外SEO從業(yè)者普遍展現(xiàn)出較高的行業(yè)責(zé)任感,Tom選擇公開漏洞而非私下利用,與部分國(guó)內(nèi)SEO可能傾向于最大化利用漏洞的行為形成鮮明對(duì)比。
5月8日更新:在5月7日的Google I/O開發(fā)者大會(huì)上,Google宣布其爬蟲將采用最新版Chrome引擎(初始版本為74),并保持持續(xù)更新。這一舉措表明Google可能早已意識(shí)到該漏洞風(fēng)險(xiǎn),并提前部署了防護(hù)措施,此前的“自信”或許源于此??梢灶A(yù)見,隨著爬蟲引擎的升級(jí),XSS注入鏈接的可行性將大幅降低,漏洞利用窗口期或?qū)㈦S之關(guān)閉。