最新消息:图 床

WordPress安全架構分析

COOL IAM 424浏览 0评论

作者:LoRexxar’@知道創宇404實驗室

0x01 前言

WordPress是一個以PHP和MySQL為平台的自由開源的博客軟件和內容管理系統。WordPress具有插件架構和模板系統。Alexa排行前100萬的網站中有超過16.7%的網站使用WordPress。到了2011年8月,約22%的新網站採用了WordPress。WordPress是目前因特網上最流行的博客系統。

在zoomeye上可以搜索到的wordpress站點超過500萬,毫不誇張的說,每時每刻都有數不清楚的人試圖從wordpress上挖掘漏洞…

由於前一段時間一直在對wordpress做代碼審計,所以今天就對wordpress做一個比較完整的架構安全分析…

0x02 開始

在分析之前,我們可能首先需要熟悉一下wordpress的結構

├─wp-admin
├─wp-content
│  ├─languages
│  ├─plugins
│  ├─themes
├─wp-includes
├─index.php
├─wp-login.php
  • admin目錄不用多說了,後台部分的所有代碼都在這裡。
  • content主要是語言、插件、主題等等,也是最容易出問題的部分。
  • includes則是一些核心代碼,包括前台代碼也在這裡

除了文件目錄結構以外,還有一個比較重要的安全機制,也就是nonce,nonce值是wordpress用於防禦csrf攻擊的手段,所以在wordpress中,幾乎每一個請求都需要帶上nonce值,這也直接導致很多類似於注入的漏洞往往起不到預期的效果,可以說這個機制很大程度上減少了wordpress的漏洞發生。

0x03 nonce安全機制

出於防禦csrf攻擊的目的,wordpress引入了nonce安全機制,只有請求中_wpnonce和預期相等,請求才會被處理。

我們一起來從代碼里看看

當我們在後台編輯文章的時候,進入/wp-admin/edit.php line 70

這裡不討論這個,直接跳過前面的步驟到漏洞核心原理的部分

wp-includes/meta.php line 365行

這裡我們可以找到漏洞代碼

事實上,在wordpress插件目錄中,wordpress本身並沒有做任何的處理,當你的用戶權限為超級管理員時,wordpress默認你可以對自己的網站負責,你可以修改插件文件、上傳帶有後門的插件,這可以導致後台幾乎可以等於webshell。

而在實際生活中,wordpress的漏洞重點集中在插件上面…在wordpress的插件上多做注意可能最重要的一點。


转载请注明:IAMCOOL » WordPress安全架構分析

0 0 vote
Article Rating
Subscribe
Notify of
0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x