dedeCMS V5.7 SP2後臺代碼執行漏洞復現(CNVD-2018-01221)php
1、漏洞描述html
織夢內容管理系統(Dedecms)是一款PHP開源網站管理系統。Dedecms V5.7 SP2版本中的tpl.php中存在代碼執行漏洞,能夠經過該漏洞在增長新標籤中上傳木馬,獲取webshell。該漏洞利用須要登陸後臺,而且後臺的帳戶權限是管理員權限。web
2、漏洞環境搭建正則表達式
一、官方下載DeDeCMS V5.7 SP2(UTF-8),下載地址: http://www.dedecms.com/products/dedecms/downloads/shell
二、使用phpstudy搭建web環境數據庫
三、把下載好的源碼放到網站根目錄下(www),而後開啓phpstudy, 瀏覽器訪問http://192.168.10.171/dedecms/uploads/install/index.php瀏覽器
四、點擊我已閱讀並繼續。而後是環境檢測,保存默認便可安全
五、接下來是參數配置,須要設置的只有數據庫密碼,把本身的密碼填上去就好了函數
六、而後就把環境搭好了網站
3、漏洞復現
一、因爲此漏洞是屬於後臺漏洞,須要先登陸到後臺,後臺默認的帳戶和密碼都是admin。Dedecms默認後臺路徑是/uploads/dede。
二、分析tpl.php裏面的代碼
a.此處定義了一個savetagfile的函數,首先作一個判斷,參數」action」是否等於savetagfile,如更等於就進行下一步
b.這裏有一個csrf檢驗函數,須要加上token來繞過限制
c.正則表達式匹配,這裏的意思是判斷filename參數是否匹配正則表達式的條件,不匹配就不容許修改操做的進行。
d.把$content裏面的內容寫入到相對用的路徑裏,因爲這一部分代碼除了對寫入的文件名字作了簡單的過濾和一個csrf防禦以外,其餘並無什麼安全措施,致使咱們能夠任意寫入代碼。
三、經過上面的代碼,有csrf檢測防護,須要得到token來進行繞過。再次瀏覽tpl.php代碼,發現action的參數有不少,好比del,edit,upload等等,但只有傳入upload的時候頁面纔會獲取token,而其餘的都沒有獲取token,因此只能經過action=upload來獲取token。
四、咱們再去tpl.php裏看一下,發現action的參數有不少,只有經過action=upload來獲取token,瀏覽器訪問http://192.168.10.171/dedecms/uploads/dede/tpl.php?action=upload
五、而後查看頁面源碼,發現token
六、經過瀏覽tpl.php代碼,發現要上傳的參數有:action,token,filename,content,構造payload
a.因爲dedecms全局變量註冊的特性,因此這裏的content變量和filename變量可控。
b.能夠把content內容直接寫到以.lib.php結尾的文件中。
Payload: http://192.168.10.171/dedecms/uploads/dede/tpl.php?action=savetagfile&token=d751030d70c713c3687a33b77b92e046&filename=abc.lib.php&content=<?php phpinfo();?>
七、瀏覽器訪問構造的payload,下圖發現成功寫入
八、根據代碼能夠看到寫入到taglib目錄,瀏覽器訪問 http://192.168.10.171/dedecms/uploads/include/taglib/abc.lib.php
9.gethsell寫入一句話木馬
10.菜刀連接,成功getshell
4、漏洞防護
1.禁止此處寫入文件。
2.過濾惡意標籤
原文出處:https://www.cnblogs.com/yuzly/p/11326571.html