幾天沒上線,好不容易想上來貼文,沒想到自己卻被擋在門外。稍微查了一下,原來是 php 檔案受到 Injection 攻擊了。Injection 這個字很有趣,感覺上就是被插了一根針管硬打進某些異物一般,想到就渾身不舒服,趕緊上網找了解法解開。眾人智慧不敢獨享,簡要介紹在這裡。
若發現網站怪怪的,有時會先連到別的頁面,某些時候卻進不來。很有可能網站已經被駭了,先用 Sucuri SiteCheck 免費網站檢查工具查查看,再來決定應該如何排除問題。被駭的方式有很多種,這次我碰到的是標準的 PHP Injection,也就是在網站上的 php 檔案都被插入了一行程式碼,執行 php 時就會被先導向到程式碼引導的新頁面去。
上網查了一下,碰到好心網友 Raymond 提供的解法。先到 PHP Tutorials for Beginners 網站下載惡意軟體掃描程式 (scanner) 和清除程式 (cleaner),然後用 ftp 軟體將這兩支程式傳上網站執行即可。不過中毒的網站檔案都很多,掃描要花一點時間。此外,掃描程式偵測的項目很多,有時可能會誤判某些 php 中合法的程式碼,所以要先從掃描畫面上看一下,確認是否掃到的問題都是真的。誤判的部分,可能要改一下掃描/清除程式才適用。
根據網站被駭的徵狀,我想只受到一種 base64_decode Injection 攻擊,所以我把 scanner 和 cleaner 的程式都稍微修改了一下 (Howard 被我抓來技術指導,感謝),重新傳上網站後執行。只掃描/清除一種徵狀,速度快很多。約莫 15 分鐘後,清除完畢了。乖乖我的天,一共有 3345 支檔案受到感染,用手動清除,我看可能好幾天也清不乾淨。
雖然檔案已經清乾淨了,但事情可是還沒完,因為網站已經被 Google 丟到黑名單中了。解決的方法是用 Google 的網站管理工具 https://www.google.com/webmasters/tools/,自己對 Google 提出重新審查的申訴 (否則聽說要好幾天到好幾週才會洗刷黑名單的身分)。
就這樣,雙十國慶日的夜晚,我就搞這撈什子,連電視轉播的煙火也沒看到。真想痛扁無聊的駭客一頓。