Wordfence最新漏洞造成大部分的網(wǎng)站被黑,Wordfence最近披露了某個(gè)影響范圍很廣的安全問題,大量WordPress網(wǎng)站都受到影響。這個(gè)漏洞利用的是WordPress的自動更新功能,此功能默認(rèn)是開啟的,又因?yàn)檎麄(gè)互聯(lián)網(wǎng)上大約有27%的站點(diǎn)都采用WordPress,所以Wordfence宣稱,整個(gè)web世界有27%的網(wǎng)站都可能因此被黑。 簡單說就是利用WordPress更新服務(wù)器的弱點(diǎn),控制該服務(wù)器,自然也就能夠同時(shí)對所有采用WordPress的網(wǎng)站完成入侵了。 一擊黑入全球1/4的網(wǎng)站 在WordPress生態(tài)中,api.wordpress.org服務(wù)器的重要功能在于,為WordPress站點(diǎn)發(fā)布自動更新。各WordPress站點(diǎn),每隔1個(gè)小時(shí)就會向該服務(wù)器發(fā)起請求,檢查插件、主題和WordPress核心更新。 api.wordpress.org服務(wù)器的響應(yīng)就包括了WordPress各部分是否需要自動更新,響應(yīng)中也包含下載和安裝更新軟件的URL地址。 于是,只要搞定了這臺服務(wù)器,黑客也就能夠讓所有的WordPress站點(diǎn)自動從他們自己的URL下載和安全惡意程序了。也就是說,攻擊者通過api.wordpress.org的自動更新機(jī)制,就能大規(guī)模黑入大量WordPress站點(diǎn)。 整個(gè)過程實(shí)際上是完全可行的,因?yàn)閃ordPress本身并不提供軟件的簽名驗(yàn)證。它信任api.wordpress.org提供的任意URL地址和包。WordPress文檔中有提到:默認(rèn)情況下,每個(gè)站點(diǎn)都會開啟自動更新功能,接收核心文件更新。 按照Wordfence的說法,黑客只需要針對api.wordpress.org一擊,就能讓全球超過1/4的網(wǎng)站感染惡意程序。 api.wordpress.org漏洞技術(shù)細(xì)節(jié) 這個(gè)更新服務(wù)器有個(gè)GitHub webhook,它能夠讓W(xué)ordPress核心開發(fā)者將代碼同步到wordpress.org SVN庫,也就能夠?qū)itHub作為其源代碼庫了。這樣一來,核心開發(fā)者只要在GitHub提交更改,就會觸發(fā)api.wordpress.org的一個(gè)進(jìn)程,也就能方便得從GitHub獲得最新代碼。 這里api.wordpress.org聯(lián)系GitHub的URL也就是所謂的“webhook”,這東西是用PHP寫的。此webhook的PHP是開源的,點(diǎn)擊這里就能獲取。 Wordfence對其中的代碼進(jìn)行了分析,發(fā)現(xiàn)了其中的一個(gè)漏洞。攻擊者利用該漏洞就能夠在api.wordpress.org上執(zhí)行任意代碼,并且獲得api.wordpress.org的訪問權(quán)。實(shí)際上也就是遠(yuǎn)程代碼執(zhí)行漏洞了。 來自GitHub的請求抵達(dá)api.wordpress.org,那么webhook會通過共享的hashing算法來確認(rèn),的確是GitHub發(fā)出的請求。整個(gè)過程是GitHub發(fā)出JSON數(shù)據(jù),它會將數(shù)據(jù)和共享秘值進(jìn)行混合,哈希后將哈希值與JSON數(shù)據(jù)一同發(fā)給api.wordpress.org。 api.wordpress.org收到請求之后,也將JSON數(shù)據(jù)和共享秘值進(jìn)行混合,然后算哈希。最終結(jié)果如果和GitHub發(fā)來的匹配,也就證明了來源是沒問題的,是GitHub發(fā)來的請求。 GitHub采用SHA1來生成哈希,并且在header: X-Hub-Signature: sha1={hash}的位置給出簽名。webhook提取算法和哈希來確認(rèn)簽名。漏洞也就在于:代碼會使用客戶端提供的哈希函數(shù),這里的客戶端通常情況下當(dāng)然就是GitHub了。在這個(gè)過程中,如果能夠繞過webhook認(rèn)證機(jī)制,攻擊者將能夠向shell_exec直接傳送POST參數(shù),從而執(zhí)行遠(yuǎn)程代碼并順利入侵api.wordpress.org更新服務(wù)器。 當(dāng)然整個(gè)過程需要讓webhook認(rèn)為,攻擊者是知道共享秘值的。不過webhook能夠讓攻擊者選擇哈希算法,PHP提供了各種算法。找個(gè)足夠弱的哈希算法,暴力攻破webhook,發(fā)出一系列哈希,猜出共享秘值和發(fā)送數(shù)據(jù)的哈希值,直到猜對為止,api.wordpress.org就會響應(yīng)請求。 整個(gè)過程的詳情可以參見文末Wordfence的原文鏈接。 問題根源沒有解決? Wordfence是在今年9月份將該漏洞上報(bào)給Automattic(WordPress母公司)的,Automattic與9月7日向代碼庫推了fix(有關(guān)補(bǔ)丁詳情,可以點(diǎn)擊這里)。不過Wordfence表示api.wordpress.org仍然是部署WordPress核心、插件和主題升級的單點(diǎn)故障根源所在。 Wordfence表示曾經(jīng)試圖與Automattic安全團(tuán)隊(duì)就有關(guān)自動升級系統(tǒng)的安全問題展開對話,但沒有得到任何回應(yīng)。大約在3年前,就有相關(guān)WordPress服務(wù)器部署認(rèn)證機(jī)制的探討,目前都還沒有任何進(jìn)展。 |
免責(zé)聲明:本站部分文章和圖片均來自用戶投稿和網(wǎng)絡(luò)收集,旨在傳播知識,文章和圖片版權(quán)歸原作者及原出處所有,僅供學(xué)習(xí)與參考,請勿用于商業(yè)用途,如果損害了您的權(quán)利,請聯(lián)系我們及時(shí)修正或刪除。謝謝!
始終以前瞻性的眼光聚焦站長、創(chuàng)業(yè)、互聯(lián)網(wǎng)等領(lǐng)域,為您提供最新最全的互聯(lián)網(wǎng)資訊,幫助站長轉(zhuǎn)型升級,為互聯(lián)網(wǎng)創(chuàng)業(yè)者提供更加優(yōu)質(zhì)的創(chuàng)業(yè)信息和品牌營銷服務(wù),與站長一起進(jìn)步!讓互聯(lián)網(wǎng)創(chuàng)業(yè)者不再孤獨(dú)!
掃一掃,關(guān)注站長網(wǎng)微信