在X/Twitter上,如果網站已經按照開發者規范要求在網頁源代碼裡添加標頭等數據,則這個網站的任何地址發佈到X上時,都會額外顯示網站域名以及圖片等數據。要實現此功能X的爬蟲需要在用戶發佈內容時第一時間對目標鏈接進行抓取,如果抓取無法那就可以顯示完整信息,並且後續變更後已經被抓取的數據也不會變更。
於是這就產生一個安全問題:有詐騙者在 X 上冒充知名新聞網站福佈斯發佈加密貨幣相關的內容,吸引幣圈用戶加入他們的社群,然後操作一些垃圾幣來收割。
從下圖中我們可以看到這種惡意利用的流程:
詐騙者在服務器上進行 HTTP 302 臨時重定向,當檢測到不同的 UserAgent 時,可以返回不同的臨時重定向地址。
其中第一個測試截圖是不使用任何瀏覽器 UA 的情況下,模擬 X 爬蟲系統進行抓取 (實際上 X 有爬蟲,叫做 TwitterBot,但沒有其他 UA 信息,見結尾附註 1),此時詐騙網站沒有檢測到有效的瀏覽器 UA,於是返回福佈斯網站的一個鏈接。
於是 X 會在推文發佈後將其標註為來自福佈斯網站。
第二個測試截圖在附帶瀏覽器 UA 的情況下,可以看到這個詐騙網站返回他們的目標地址,那就是那個社群。
而用戶正常點擊鏈接那肯定是附帶瀏覽器 UA 信息的,所以實際上點擊都是返回社群地址,第一種情況僅僅隻是用來迷惑 X 的爬蟲。
值得註意的是,這種情況並不是現在才發生的,至少從去年 8 月開始已經有詐騙者使用這種方法進行釣魚,不過至今 X 也沒有解決這類問題。
附註 1:
X/Twitter 爬蟲的完整信息:TwitterBot/1.0