'0','$spaceSta','','$safequestion','$safeanswer','$jointime','$joinip','$logintime','$loginip'); "; if($dsql->ExecuteNoneQuery($inQuery)) …(略) 所以提交变量$cfg_mb_spacesta 值不小于 0,注册的会员将不需要邮件验证和审核,利用前 文的方法二修改注册提交页面源码,提交不含“1”的变量 safe_gdopen 可以绕过验证码限 制,详细利用略。 利用三:全局变量注入。使用 DW 在 member 目录搜索“(select |update |insert ).*(cfg_)”字符串(即使用全局变量的 Sql 语句),如图 13,获得 album_add.php、 archives_add.php、article_add.php 等页面,使用“$cfg_sendarc_scores”全局变量, 并 且 以 数 字 型 引 入 Sql 语 句 , 如 “ "UPDATE `#@ member` SET scores=scores+{$cfg_sendarc_scores} WHERE mid='".$cfg_ml->M_ID. "' ; "”。 ![]()
前文提及的注入漏洞二必须获知$cfg_cookie_encode 变量,这里我们完全可以提交变量
$cfg_cookie_encode 为空,满足条件,受影响页面有 memmber 目录中的 reg_new.php、 edit_fullinfo.php 等页面。详细利用略。 利用四:全局变量上传木马。会员上传页面为 member 目录中的 uploads_add.php、 uploads_edit.php 等 , 上 传 函 数 MemberUploads 定 义 在 include/helpers/upload.helper.php 文件,分析代码如下: function MemberUploads($upname,$handname,$userid=0,$utype='image',$exname='',$maxwid th=0,$maxheight=0,$water=false,$isadmin=false) { ...(略) $allAllowType = str_replace('||', '|', $cfg_imgtype.'|'.$cfg_mediatype.'|'.$cfg_mb_addontype); //①提交全局变量$cfg_imgtype、$cfg_mediatype、$cfg_mb_addontype,自定义允许 上传的文件类型 if(!empty($GLOBALS[$upname]) && is_uploaded_file($GLOBALS[$upname])) { $nowtme = time(); $GLOBALS[$upname.'_name'] = trim(preg_replace("#[ \r\n\t\*\%\\\/\?><\|\":]{1,}#",'',$GLOBALS[$upname.'_ name'])); //②过滤上传文件名中的空格等符号 if($utype=='image') //③分别检查 image、flash、media 等文件类型 { ...(略) } //再次严格检测文件扩展名是否符合系统定义的类型 $fs = explode('.', $GLOBALS[$upname.'_name']); $sname = $fs[count($fs)-1]; //上传文件的扩展名 $alltypes = explode('|', $allAllowType); if(!in_array(strtolower($sname), $alltypes)) //④$alltypes 含扩展名小 写 { ShowMsg('你所上传的文件类型不被允许!', '-1'); exit(); } //强制禁止的文件类型 Php if(preg_match("/(asp|php|pl|cgi|shtm|js)$/", $sname)) //⑤大写绕过,如: { ShowMsg('你上传的文件为系统禁止的类型!', '-1'); exit(); } …(略) move_uploaded_file($GLOBALS[$upname], $cfg_basedir.$filename) or die(" 上传文件到 {$filename} 失败!"); //⑥使用 move_uploaded_file 函数完成文件上传 @unlink($GLOBALS[$upname]); ...(略) } 我们可以提交全局变量$cfg_imgtype、$cfg_mediatype、$cfg_mb_addontype,自定义允 许上传的文件类型,使用大写扩展名并增加空格等符号,比如“P hp”等,首先绕过 include/uploadsafe.inc.php 对 php 类型的限制,然后经过代码②过滤空格后绕过代码⑤ 限制,最后使用 move_uploaded_file 函数完成文件上传。漏洞利用必须登陆用户,将下面 代码另存为 upload2.htm,页面如图 14。 |