当前位置:WooYun >> 漏洞信息

漏洞概要 关注数(24) 关注此漏洞

缺陷编号:wooyun-2012-06598

漏洞标题:Dedecms 注射漏洞获得管理员密码

相关厂商:Dedecms

漏洞作者: c4rp3nt3r

提交时间:2012-05-02 11:46

修复时间:2012-06-16 11:47

公开时间:2012-06-16 11:47

漏洞类型:SQL注射漏洞

危害等级:中

自评Rank:5

漏洞状态:未联系到厂商或者厂商积极忽略

漏洞来源: http://www.wooyun.org,如有疑问或需要帮助请联系 [email protected]

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2012-05-02: 积极联系厂商并且等待厂商认领中,细节不对外公开
2012-06-16: 厂商已经主动忽略漏洞,细节向公众公开

简要描述:

Dedecms 某文件没过滤直接带入sql查询,攻击者在magic_quotes_gpc=off时,可以注射SQL代码,绕过sqlids检测,执行sql语句.

详细说明:

要求会员中心,注册用户登录,magic_quotes_gpc=off,以及php版本要求,其实也没有什么危害.
漏洞代码如下:

root@bt:/var/www/dede/member# cat -n edit_face.php
9 require_once(dirname(__FILE__).”/config.php”); //这里包含和谐的 ../include/filter.inc.php
10 CheckRank(0,0); //检查权限,至少要是通过认证的会员,什么注册不了会员?别着急我们有办法
11 $menutype = ‘config’;
12 if(!isset($dopost))
13 {
14 $dopost = ”;
15 }
16 if(!isset($backurl))
17 {
18 $backurl = ‘edit_face.php’;
19 }
20 if($dopost==’save’)
21 {
22 $maxlength = $cfg_max_face * 1024;
23 $userdir = $cfg_user_dir.’/’.$cfg_ml->M_ID;
24 if(!preg_match(“#^”.$userdir.”#”, $oldface)) //绕过这个正则表达式才能继续玩
25 {
26 $oldface = ”;
27 }
28 if(is_uploaded_file($face))
29 {
30 if(@filesize($_FILES['face']['tmp_name']) > $maxlength)
31 {
32 ShowMsg(“你上传的头像文件超过了系统限制大小:{$cfg_max_face} K!“, ‘-1′);
33 exit();
34 }
35 //删除旧图片(防止文件扩展名不同,如:原来的是gif,后来的是jpg)
36 if(preg_match(“#\.(jpg|gif|png)$#i”, $oldface) && file_exists($cfg_basedir.$oldface))
37 {
38 @unlink($cfg_basedir.$oldface);
39 }
40 //上传新工图片
41 $face = MemberUploads(‘face’, $oldface, $cfg_ml->M_ID, ‘image’, ‘myface’, 180, 180);
42 }
43 else
44 {
45 $face = $oldface; // $oldface是我们能控制的变量
46 }
47 $query = “UPDATE `#@__member` SET `face` = ‘$face’ WHERE mid=’{$cfg_ml->M_ID}’ “; //这里导致注射漏洞
48 $dsql->ExecuteNoneQuery($query);
49 // 清除缓存
50 $cfg_ml->DelCache($cfg_ml->M_ID);
51 ShowMsg(‘成功更新头像信息!‘, $backurl);
52 exit();
53 }

漏洞证明:

修复方案:

省略...

版权声明:转载请注明来源 c4rp3nt3r@乌云


漏洞回应

厂商回应:

未能联系到厂商或者厂商积极拒绝