上週WordPress被爆出一個新的漏洞,該漏洞容許未經身份驗證的攻擊者遠程執行代碼並接管網站權限。
php
該漏洞影響存儲在數據庫中的過濾後的評論,任何開啓了註釋功能且爲5.1.1以前版本的WordPress都是脆弱的。數據庫
爲了利用這個漏洞,攻擊者必須欺騙站點管理員訪問一個域,從而在後臺觸發跨站點請求僞造(CSRF)漏洞,該漏洞利用一系列邏輯缺陷和清理錯誤來執行代碼並接管目標站點。安全
這個漏洞在默認設置下是能夠利用的,並且隨着大多數WordPress安裝啓用了評論功能,數百萬個網站可能會受到影響。服務器
該問題的核心是當用戶發佈新評論時WordPress不執行CSRF驗證(若是驗證到位,trackbacks和pingbacks等功能將會中斷),這使得攻擊者能夠以管理員的名義建立評論。
微信
考慮到管理員能夠在註釋中使用任意HTML標記,甚至<script>標記,這種驗證的缺少可能成爲一個關鍵問題,由於攻擊者在理論上可能會濫用CSRF來建立包含惡意JavaScript代碼的註釋。網站
WordPress試圖經過在評論表單中爲管理員生成一個額外的nonce來解決這個問題。當管理員提交一個註釋並提供一個有效的nonce時,該註釋將在不進行任何清理的狀況下建立。若是nonce無效,仍然會建立註釋,可是會對其進行清理。清理過程當中的邏輯缺陷可能容許攻擊者建立包含「比一般容許包含的HTML標記和屬性多得多」的註釋,這可能致使在WordPress核心中存儲跨站點腳本(XSS)。其可能的緣由是一些一般不能在註釋中設置的屬性被錯誤地解析和操做,從而致使任意的屬性注入。url
攻擊者能夠建立一個包含精心製做的<a>標記的註釋,經過將這個清理漏洞與CSRF漏洞連接起來,將存儲的XSS有效負載注入目標網站。接下來,攻擊者須要欺騙管理員來執行注入的JavaScript,這能夠經過攻擊者網站上隱藏的<iframe>來完成。spa
遠程代碼執行很容易成功。默認狀況下,WordPress容許博客管理員從管理儀表板中直接編輯主題和插件的.php文件。只要插入一個PHP後門,攻擊者就能夠在遠程服務器上得到任意PHP代碼的執行。.net
這個漏洞在WordPress 5.1.1中獲得瞭解決,若是網站沒有設置爲自動更新(這是默認設置),建議網站管理員儘快下載並應用這個補丁。插件
本文分享自微信公衆號 - 懸鏡AI安全(Anpro-tech)。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。