网站地图    收藏   

主页 > 后端 > 网站安全 >

MetInfo5.1鸡肋GETSHELL - 网站安全 - 自学php

来源:自学PHP网    时间:2015-04-17 10:16 作者: 阅读:

[导读] 0x00: 一个项目渗透测试项目上遇上这个情况,在metinfo上密文不能解密时候的时候 我们还有这种方法法可以绕过后台GETSHELL。0x01: 官方最新的metinfo5 1,是昨天下载的的。0x02: 其实是二...

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:

 

      exp:

1.png


0x05:

      利用是这样子的首先准备木马例如fuck.php 压缩成zip 然后填写上管理员密文 上传。

     如图:

2.png

自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习

京ICP备14009008号-1@版权所有www.zixuephp.com

网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com

添加评论