WordPress安全漏洞:從任意檔案删除到任意代碼執行
WordPress是網絡上最受歡迎的CMS系統。據w3tech統計,約有30%的網站運作了該系統。該系統的應用是如此廣泛,難免會成為網絡犯罪分子攻擊目标。在這篇博文中,我們将為讀者介紹WordPress核心中的一個任意檔案删除漏洞,這個漏洞可能會導緻攻擊者執行任意代碼。早在7個月前,我們就向WordPress安全團隊報告了這個漏洞,但到目前為止,該漏洞仍然沒有得到修補。自初次報告(該報告既沒有提供任何更新檔,也沒有給出具體的修複計劃)至今,已經過了漫長的時間,但是仍然沒有看到任何的修複迹象,是以,我們決定将這個漏洞公之于衆,以督促其盡快采取行動。
受影響的版本
在撰寫本文時,該漏洞仍然沒有更新檔可用。并且,所有WordPress版本,包括目前的4.9.6版本在内,都面臨這個漏洞的威脅。
要想利用下面讨論的這個漏洞,攻擊者需要事先獲得編輯和删除媒體檔案的權限。是以,該漏洞可用于通過接管角色與作者一樣低的帳戶或通過利用其他漏洞/錯誤配置來實作提權。
漏洞危害
利用這個漏洞,攻擊者能夠删除WordPress安裝的任何檔案(+ PHP伺服器上的任何其他檔案,即PHP程序有權删除的,盡情删就是了)。除了删除整個WordPress安裝的可能性(如果目前沒有備份可用的話,将會導緻災難性後果)之外,攻擊者還可以利用任意檔案删除功能繞過一些安全措施,繼而在Web伺服器上執行任意代碼。更确切地說,攻擊者可以删除下列檔案:
.htaccess:通常情況下,删除該檔案不會有任何安全影響。但是,在某些情況下,.htaccess檔案包含與安全相關的安全限制(例如,對某些檔案夾的通路限制),是以,删除此檔案後,相應的安全限制将會随之消失。
index.php檔案:通常情況下,一些空的index.php檔案被放置到各個目錄中,以防止相應目錄中的内容被列出。删除這些檔案後,攻擊者就能夠列出受該方法保護的目錄中的所有檔案。
wp-config.php:删除這個WordPress安裝檔案會在下次通路該網站時觸發WordPress安裝過程。這是因為wp-config.php包含資料庫憑證,如果沒有它,WordPress的就會采取尚未安裝之前的操作。攻擊者可以删除該檔案,然後,使用為管理者帳戶選擇的憑據進行安裝,最後在伺服器上執行任意代碼。關于WordPress安全方面的問題可以關注趙一八筆記