来源:自学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: 0x05: 利用是这样子的首先准备木马例如fuck.php 压缩成zip 然后填写上管理员密文 上传。 如图: |
自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习
京ICP备14009008号-1@版权所有www.zixuephp.com
网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com