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 //上传新工图片 www.2cto.com 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 `detest_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
查看更多关于Dedecms 注射漏洞获得管理员密码 - 网站安全 - 自的详细内容...