欢迎来到 黑吧安全网 聚焦网络安全前沿资讯,精华内容,交流技术心得!

MetInfo5.1鸡肋GETSHELL

来源:本站转载 作者:mOon 时间:2013-10-06 TAG: 我要投稿

 0x00:

      一个项目渗透测试项目上遇上这个情况,在metinfo上密文不能解密时候的时候 我们还有这种方法法可以绕过后台GETSHELL。

0x01:

     官方最新的metinfo5.1,是昨天下载的的。

0x02:

     其实是二次漏洞,首先我们来看一下 uploadify.php 这个文件 开头我以为是没有验证,很有可能直接GETSHELL,后来看到上面几句验证,

    权限验证还是有的。

    代码:

    

<?php
require_once 'common.inc.php';
if(!$metinfo_admin_id||!$metinfo_admin_pass){
	echo $lang_uplaoderr1;
	die();
}else{

	$admincp_ok = $db->get_one("SELECT * FROM $met_admin_table WHERE id='$metinfo_admin_id' and admin_pass='$metinfo_admin_pass' and usertype='3'");
	if(!$admincp_ok){
		echo $metinfo_admin_id.$lang_uplaoderr1;
		die();
	}
}

知道帐号id和密码密文就可以成功绕过的,或者是覆盖$admincp_ok 就可以绕过后台验证方法,无奈的是 变量覆盖在这里起不了作用。

 

0x03:

      既然验证我们可以绕过,那么我们就来构造一下GETSHELL的条件,寻找能直接上传的地方,问题同样出在uploadify.php身上,

代码:

 

/*数据库文件*/
}elseif($type=='sql'){
	if(strstr($_FILES['Filedata']['name'],'.sql')){
		$filenamearray=explode('.sql',$_FILES['Filedata']['name']);
		$f = new upfile('sql,zip','../databack/','','');
		if(file_exists('../databack/'.$filenamearray[0].'.sql'))$filenamearray[0]='metinfo'.$filenamearray[0];
		if($_FILES['Filedata']['name']!=''){
				$met_upsql   = $f->upload('Filedata',$filenamearray[0]); 
		}
		include "pclzip.lib.php";
		$archive = new PclZip('../databack/sql/'.'metinfo_'.$filenamearray[0].'.zip');
		$archive->add('../databack/'.$filenamearray[0].'.sql',PCLZIP_OPT_REMOVE_PATH,'../databack/');
		$metinfo='1$'.'../databack/'.$filenamearray[0].'.sql';
	}else{
		$filetype=explode('.',$_FILES['Filedata']['name']);
		if($filetype[count($filetype)-1]=='zip'){
			$filenamearray=explode('.zip',$_FILES['Filedata']['name']);
			//var_dump($filenamearray);
			$f = new upfile('sql,zip','../databack/sql/','','');
			if(file_exists('../databack/sql/'.$filenamearray[0].'.zip'))$filenamearray[0]='metinfo'.$filenamearray[0];
			if($_FILES['Filedata']['name']!=''){
					$met_upsql = $f->upload('Filedata',$filenamearray[0]); 
			}
			include "pclzip.lib.php";
			$archive = new PclZip('../databack/sql/'.$filenamearray[0].'.zip');
		//	echo PCLZIP_OPT_PATH;
			if($archive->extract(PCLZIP_OPT_PATH, '../databack') == 0){
				$metinfo=$archive->errorInfo(true);
			}
			else{
				$list = $archive->listContent();
				$metinfo='1$'.'../databack/sql/'.$filenamearray[0].'.zip';
			}
		}else{
			$metinfo=$lang_uplaoderr3;
		}
	}
}
echo $metinfo;

 

pclzip.lib.php 直接解压到\admin\databack 目录下面。

0x04:

[1] [2]  下一页

【声明】:黑吧安全网(http://www.myhack58.com)登载此文出于传递更多信息之目的,并不代表本站赞同其观点和对其真实性负责,仅适于网络安全技术爱好者学习研究使用,学习中请遵循国家相关法律法规。如有问题请联系我们,联系邮箱admin@myhack58.com,我们会在最短的时间内进行处理。
  • 最新更新
    • 相关阅读
      • 本类热门
        • 最近下载