乌云(WooYun.org)历史漏洞查询---http://wy.zone.ci/
乌云 Drops 文章在线浏览--------http://drop.zone.ci/
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 }
省略...
未能联系到厂商或者厂商积极拒绝