您好,登錄后才能下訂單哦!
Contact Form 7插件中的不受限制文件上傳漏洞CVE-2020-35489該怎么分析,針對(duì)這個(gè)問(wèn)題,這篇文章詳細(xì)介紹了相對(duì)應(yīng)的分析和解答,希望可以幫助更多想解決這個(gè)問(wèn)題的小伙伴找到更簡(jiǎn)單易行的方法。
漏洞概述
眾所周知,Contact Form 7是一款非常受歡迎的WordPress插件。但是根據(jù)安全研究專家的最新發(fā)現(xiàn),Contact Form 7中存在一個(gè)不受限制的文件上傳漏洞。這個(gè)漏洞被標(biāo)記為了高危漏洞,目前存在漏洞的Contact Form 7插件已經(jīng)安裝在了500多萬(wàn)個(gè)網(wǎng)站上,使得這些網(wǎng)站將成為攻擊者嚴(yán)重的“香餑餑”。在該漏洞的幫助下,攻擊者將能夠?qū)δ繕?biāo)站點(diǎn)執(zhí)行網(wǎng)絡(luò)釣魚、網(wǎng)站接管、數(shù)據(jù)竊取和Credit卡欺詐等攻擊活動(dòng)。
我們將介紹并分析該漏洞的成因,并給出針對(duì)該漏洞的概念驗(yàn)證PoC以及緩解方案。
關(guān)于該插件的信息,我們直接引用該插件官方文檔給出的介紹:
Contact Form 7是一款免費(fèi)的wordpress聯(lián)系表單插件,簡(jiǎn)稱CF7,在WP官方的插件排行榜里排名第一,也是表單插件里最受歡迎的插件之一。該插件可以管理多個(gè)聯(lián)系人表單,并且可以通過(guò)簡(jiǎn)單的標(biāo)記靈活地定制表單和郵件內(nèi)容。
國(guó)家漏洞數(shù)據(jù)庫(kù)(NVD)目前已將該漏洞標(biāo)記為了CVE-2020-35489,相關(guān)漏洞描述如下:
WordPress的Contact Form 7插件(版本低于v5.3.2)將允許攻擊者實(shí)現(xiàn)不受限制的文件上傳和遠(yuǎn)程代碼執(zhí)行(由于文件名中可能包含特殊字符)。
該插件允許WP管理員在自己的網(wǎng)站上創(chuàng)建聯(lián)系人表單,網(wǎng)站用戶可以在表單中輸入相關(guān)聯(lián)系信息以獲取技術(shù)支持或獲取反饋信息。
惡意用戶可以通過(guò)上傳一個(gè)文件名中包含了雙擴(kuò)展名的文件來(lái)利用該漏洞,文件名由不可打印或特殊字符分隔,比如“說(shuō)php .jpg”(\t字符是分隔符)。
接下來(lái),Contact Form 7并不會(huì)從上傳文件的文件名中移除這些字符,并且會(huì)解析包含第一個(gè)擴(kuò)展名在內(nèi)的之前的文件名,而分隔符會(huì)導(dǎo)致Contact Form 7無(wú)法解析后續(xù)的擴(kuò)展名。因此,最后的文件名就變成了“php”。
而攻擊者將能夠通過(guò)遠(yuǎn)程代碼執(zhí)行在服務(wù)器中訪問(wèn)或執(zhí)行此文件。
關(guān)于Contact Form 7的源代碼,感興趣的同學(xué)可以點(diǎn)擊【這里】查看托管在GitHub上的源代碼。
因此,攻擊者將能夠利用漏洞CVE-2020–35498對(duì)目標(biāo)站點(diǎn)產(chǎn)生嚴(yán)重的安全影響。
注意,我們還不能公開(kāi)披露該漏洞的相關(guān)技術(shù)和利用細(xì)節(jié),因?yàn)楣俜降腜oC尚未發(fā)布。而且在2020年12月31日之前,我們還要給供應(yīng)商和廣大用戶一定的時(shí)間來(lái)進(jìn)行更新。
在這里,我將在本地配置一個(gè)WordPress站點(diǎn),并演示如何利用該漏洞。我將使用Contact Form 7 v5.3.1版本的插件來(lái)演示該漏洞的利用方法,因?yàn)檫@個(gè)漏洞已在2020年12月17日發(fā)布的5.3.2版本中進(jìn)行了修復(fù)。
首先,我們需要下載、導(dǎo)入、安裝并激活該插件:
此時(shí),Contact Form 7插件已經(jīng)安裝并激活陳公公了。
第二步,我們要在WordPress側(cè)邊欄中找到“Contact”標(biāo)簽,然后點(diǎn)擊“Add New”按鈕來(lái)創(chuàng)建一個(gè)新的表單。
接下來(lái),為了進(jìn)行漏洞演示,我創(chuàng)建了一個(gè)“Job Application Form”表單,這個(gè)表單提供了一個(gè)文件上傳的功能支持。
最后,將這個(gè)表單添加至一個(gè)頁(yè)面中并發(fā)布。
我們?cè)L問(wèn)這個(gè)新建的頁(yè)面,然后在表單中文件上傳部分上傳一個(gè)文件名為“exploit.php .jpg”的文件。
我們的惡意文件此時(shí)將會(huì)被成功上傳至服務(wù)器。
點(diǎn)擊“Submit”按鈕,我們將會(huì)收到服務(wù)器端返回的上傳響應(yīng),表明我們的文件已經(jīng)成功上傳了,文件名為“exploit.php”。接下來(lái),我們將能夠通過(guò)任意代碼執(zhí)行在服務(wù)器中訪問(wèn)或執(zhí)行此文件了。
文件的默認(rèn)上傳路徑為“wp-content/uploads”,但是可以通過(guò)下列方式來(lái)修改文件上傳路徑(WPCF7_UPLOADS_TMP_DIR):
define( 'WPCF7_UPLOADS_TMP_DIR', '/your/file/path' );
通過(guò)利用該漏洞,攻擊者可以直接上傳任意類型的文件,并繞過(guò)目標(biāo)站點(diǎn)部署的上傳文件類型限制,其后果可能但不限于:
接管整個(gè)網(wǎng)站;
惡意軟件感染,竊取Credit卡信息,將用戶重定向至惡意頁(yè)面;
網(wǎng)絡(luò)釣魚攻擊;
獲取目標(biāo)服務(wù)器文件系統(tǒng)和數(shù)據(jù)庫(kù)信息;
插入后門程序;
......
進(jìn)入WordPress插件功能頁(yè)面中,將該插件版本更新至v5.3.2或更新版本。除此之外,我們還可以使用WordPress安全漏洞掃描器-WPSec來(lái)掃描和監(jiān)控我們的WordPress站點(diǎn)。運(yùn)行WPSec之后,我們將看到如下圖所示的輸出內(nèi)容:
實(shí)際上,類似的漏洞經(jīng)常都會(huì)常出現(xiàn)。因此我們建議廣大用戶盡量定期手動(dòng)對(duì)插件進(jìn)行更新。除此之外,我們還應(yīng)該禁止uploads文件夾內(nèi)的PHP代碼執(zhí)行功能。如果使用的是Nginx,可以在配置文件中添加下列內(nèi)容來(lái)禁用PHP代碼執(zhí)行功能:
location ^~ /wp-content/uploads/ { }
對(duì)于Apache Web服務(wù)器,我們不建議通過(guò)在uploads文件夾中放置.htaccess文件來(lái)防止PHP代碼執(zhí)行,因?yàn)楣粽吆芸赡軙?huì)使用上述漏洞覆蓋此文件。我們可以使用Apache配置文件來(lái)阻止執(zhí)行,但這在共享宿主環(huán)境中可能是一個(gè)問(wèn)題。同時(shí),我們可以將AllowOverride設(shè)置為None以防止.htaccess文件覆蓋設(shè)置。
關(guān)于Contact Form 7插件中的不受限制文件上傳漏洞CVE-2020-35489該怎么分析問(wèn)題的解答就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,如果你還有很多疑惑沒(méi)有解開(kāi),可以關(guān)注億速云行業(yè)資訊頻道了解更多相關(guān)知識(shí)。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。