来源:自学PHP网 时间:2015-04-17 13:02 作者: 阅读:次
[导读] Dedecms 某文件没过滤直接带入sql查询,攻击者在magic_quotes_gpc=off时,可以注射SQL代码,绕过sqlids检测,执行sql语句.详细说明:要求会员中心,注册用户登录,magic_quotes_gpc=off,以及php版本要求,其实...
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 |
自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习
京ICP备14009008号-1@版权所有www.zixuephp.com
网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com