[搬舊文] 柏斯琴行網站被駭, WordPress保安不能馬虎
** 原文張貼於聚言時報 - 2015 Apr **
四月廿五日晚,香港柏斯琴行網站遭黑客入侵,網站首頁及內頁都出現伊斯蘭國 (ISIS) 的內容。直至翌日下午,網站已恢復正常,而柏斯琴行官方亦在官方 facebook 上表示已通知港府有關電腦保安部門處理。
可是,該網站為何會遭到入侵?當然有眼利的讀者可能會發現,該琴行的英文名稱 “Parsons",指的是牧師,而 ISIS 對基督徒非常憎恨,或者就是該網站被入侵的其一原因。但是,我卻認為這次的入侵事故,是由於網站的保安做得太差所致。
首先我在此聲明,我沒有報讀任何該校的課程,沒有懂得任何一種樂器,因為我是五音不全的。不過,稍微研究一下這個網站,很明顯這個網站是用 WordPress 建立的。
雖然 WordPress 本身的漏洞不多,可是設定有誤的話,很容易就會被入侵和篡改內容,相信該網站被入侵的原因,或者是由於軟件層的漏洞所致。
WordPress, 受全球歡迎的內容管理系統 (CMS)
由於網站的內容更新及管理上的需要,較有系統的網站均會使用 內容管理系統 (CMS),以進行新增頁面、更改內容、刪除等等的網站管理工作。除了公司網站外,各類討論區的管理系統,也是 CMS 的一種。簡而言之,一般供管理者使用,可以變更及管理網站內容的平台,就是 CMS。
WordPress 為其中一個全球較受歡迎的 CMS 系統,一般人可能誤以為 WordPress 只是一個易用的寫網誌的系統,但在全球首一千個最多人瀏覽的網站內,使用 WordPress 的佔當中的 23.3%,現時全球至少有六千萬個網站,是由 WordPress 系統搭建的。
現時本地部分的網絡媒體,如聚言時報、輔仁媒體、852郵報、TMHK 等等,均採用 WordPress 系統,好處是容易上手,要知道管理者的資質有異,不是所有人均是熟悉電腦系統的。此外,設定簡單、插件繁多、支援及使用者群較多,亦是 WordPress 相較於 Drupal、Joomla 等 Open Source 的 CMS 優勢的地方。
WordPress 有漏洞嗎?
沒有系統是完美無瑕的。 WordPress 有漏洞嗎?必定有。但是漏洞與柏斯琴行的入侵有關嗎?我卻不認為有很大的關連。
在 WordPress 官方的 文件,有討論過 WordPress 本身的安全性問題,並有方案以改善網站的安全性,肯認真閱讀及實行相信也能令網站安全提升 200 分的。
在網上亦有很多對 WordPress attacking 的文章,討論避免受攻擊/入侵的方法,例如這篇 Attacking WordPress 文章講述以觀察 wordpress 版本、網站檔案目錄、插件版本漏洞、暴力破解使用者密碼等方法入侵 WordPress 網站。當中在暴力破解使用者密碼的情況下,作者以 500 個最差密碼名單配合低階 vps 伺服器進行暴力破解,完成測試時間只需約 1 分鐘,也即是說,若密碼為名單內的其中一款,破解密碼只需 1 分鐘內,由此亦可見密碼強度的重要性。
柏斯琴行 – 明顯的漏洞
為保障個人及大家的安全,以下網址將以 website.com 代替。
幸運地,網站重開了,眼前一亮了。
以下將按照 Attacking WordPress 文章的說法,簡單測試一下網站的後台登入。
01 - 首先,先確定網站是否使用 WordPress。
若有稍稍研究 WordPress 的檔案架構,其實唔難。只要打開網站的程式碼檢視,尋找 “wordpress", “wp-includes", “wp-content",只要在 tag 內發現這三個字詞,基本上可以斷定該網站是用 WordPress 建立的。
好,下一步。
02 - 下一步,就是進入管理者登入畫面。一般而言,WordPress 預設登入頁面為
http://website.com/wp-admin
值得慶幸是登入介面極之簡潔,似乎是 “無添加" 的,沒有登入記錄,沒有驗證碼確認登入。
Bingo! 下一步。
03 - 然後呢?我們需要登入帳號和密碼。雖然密碼可以借助暴力破解 (brust force),但是帳號又可以怎樣找,就是靠以下的一條連結:
http://website.com/?author=1
?author=1 指查閱系統第一位使用者 (預設是"管理員",即權限最大的使用者類型) 的資料,正常會顯示使用者的名稱,使用者的文章等等。
把連結填到網址列,看看標題……
admin2, 就是你了!
04 - 然後,你已經取得該網站的 WordPress 版本、管理者登入頁面、管理者帳號,然後只要你使用小程式,對這個能容許你不斷測試登入的網站, 不斷登入……
直至你成功的一刻,你已經取得這個網站的控制權了。
(在此我不作測試,由於涉及法律問題,請勿以自己電腦進行測試,本人亦不會因意外而導致任何法律問題負責,本文只作教學用途,望請留意)
你或許會問,究竟有 WordPress 的控制權,到底有甚麼用?根據 WordPress 的文章,Disable File Editing 的一節提到:
The WordPress Dashboard by default allows administrators to edit PHP files, such as plugin and theme files……
基本上你想宣示主權也好,貼執笠啟示也好,應該都是可行的。
解決問題方法
以上的方法針對軟件層,在網站入侵而言只屬皮毛程度,但效果亦顯而易見的。正正就是容許無限制登入,再次受到入侵也是有可能的。作為消費者或商家,可以請教網站設計及管理公司,畢竟也付出了金錢嘛。作為一個網站使用者,以下有數個解決方法,可以避免類似該網站的問題。
01 - 安裝針對安全性的 WordPress 插件
如 All In One WP Security & Firewall, iThemes Security 等等,好處是設定簡單方便,基本漏洞會提示你進行修正,還有加入登入驗證碼或登入連結變更等等選項……當然還有記錄不當使用者 IP 功能。
02 - 安裝 Web Application Firewall
如 NAXSI 或 ModSecurity,依照網站 server 而定。安裝及設定上較為複雜,但對 brute force, XSS 及 SQL injection 等 HTTP 攻擊有保護作用。
03 - 更新程式
這是老生常談。時代在進步,現在已經有人利用顯示卡進行 brust force 破解,連加密法也進化了數代,你還寄望舊程式能安全地為你們服務嗎?