1. 程式人生 > >網站一次被黑的記錄

網站一次被黑的記錄

一直以來技術小黑屋的部落格都執行良好,總以為一個全部靜態的部落格不會導致被黑。直到最近才著實地體驗了一次被黑的滋味。僅以此文記錄一下,便於給同樣問題的人一些幫助。

大概是週三(2018年1月17號)的時候,有人反饋,訪問我的網站,會跳轉到支付寶。當然還奇怪,調到支付寶有個甚用,後來使用手機上的瀏覽器才發現。這個跳轉回自動的開啟支付寶然後領取紅包。又是一起為了支付寶紅包的行為。以前聽說過用有人用基站發簡訊領取,沒想到居然這麼快居然和我扯上關係了。

於是我就順著這個問題,進行了一系列的調查。 首先,由於微信的遮蔽,我得到了這樣的一個比較有效的資訊。

圖0:網站第一次被黑的記錄

得到了跳轉的連結,接下來就需要確認從哪裡跳過去的。由於之前有過相關瀏覽器的經驗,於是寫了一個簡單的webView,然後答應出來了所有的網路請求。得到的請求如下

圖1:網站第一次被黑的記錄

然後使用特別容易出現的聯通網路,挨個查詢接近跳轉連結的請求。比如book_rec_base.js,果然不看不知道,一看嚇一跳。

圖2:網站第一次被黑的記錄

天哪,在太原機房的檔案居然這麼簡單粗暴的修改成了支付寶跳轉連結,WTF。別的機房是不是有問題呢?後來試了幾個非聯通網路沒有發現問題。

為什麼只有聯通下才出現,而其他運營商不出現問題呢,這是一個疑問。

原因其實很簡單,我使用了七牛的CDN,一個網路請求會根據客戶端的運營商和地理位置擇優選擇機房的備份。而北京聯通的使用者,則不幸的都被導向了有問題的山西太原聯通機房。

到底是被運營商劫持了還是檔案被而已修改了呢

我是這樣驗證的,使用一個不發生劫持的運營商(比如香港主線)然後繫結hosts,指定訪問太原機房的伺服器,看一下是什麼結果。

圖3:網站第一次被黑的記錄

我們可以看到這個檔案確實被修改了。

怎麼解決呢

本以為在七牛強制重新整理這個檔案的快取能解決問題,可是誰知道呢,貌似被重新整理之後,沒過多久又變成了跳轉支付寶的內容,貌似像是一個自動定時修改的指令碼。

初步解決方案

我把相關的這些js檔案全部轉向放在github pages上,果然沒有問題了。

目前我準備把網站支援https。初步嘗試了cloudflare發現確實不錯,可是在移動運營商下居然訪問不了,原因你懂我也懂。後來發現又拍雲可以自動建立Let’s Encrypted的證書並且支援續簽,於是才下決心試一試又拍雲。

最後,對這段時間中招的同學表示歉意,以後小黑屋部落格將更加安全有序執行,當然會逐步恢復之前的文章更新進度。感謝有你的支援。