万众电子期刊在线阅读系统后台上传漏洞

再次拿到了万众电子期刊在线阅读系统。搭建测试,修复了前台的SQL注入以及XSS跨站。有留言的地方增加了验证码.
后台查看上传的过程admin\includes\upload.inc.php

<?php
header('content-Type:text/html;charset=UTF-8');
require '../../includes/other.fun.php';
require '../../includes/file.fun.php';
$input=$_GET['input'];
$form=$_GET['form'];
$dir=$_GET['dir'];//目录
$text=$_GET['text'];
$type=$_GET['type'];
?>

然后继续往下看,拿这些东西干嘛

if($_GET['action']=='upfile'){
    $input=$_GET['input'];
    $form=$_GET['form'];
    $dir=$_GET['dir'];
    $text=$_GET['text'];
    $type=$_GET['type'];
	if(!_isfolder('../../upload/'.$dir)){
		_folder('../../upload/'.$dir);//无法创建文件夹
	}
	if(!_isfolder('../../upload/'.$dir)){
		echo '无法创建/upload/'.$dir.'文件夹,请检查权限!';
	}
    if($type=='a'){
        $filetype=array('image/png','image/jpeg','image/gif','image/pjpeg');//检测文件的Content-Type
    }
    if($type=='b'){
        $filetype=array('application/pdf');
    }
    if($_FILES['file']['error']==4){
        function_alert('请选择需要上传的文件!', '');
    }
    if(!in_array($_FILES['file']['type'],$filetype)){
        function_alert('文件格式不支持!','');
    }
    if($_FILES['file']['error']==1){
        function_alert('文件大小超过PHP允许的大小限制!', '');
    }
    if($_FILES['file']['error']==3){
        function_alert('网络中断,请重新上传!', '');
    }
    if(is_uploaded_file($_FILES['file']['tmp_name'])){
		if($_FILES['file']['type']=='image/png'){
			$filetype='png';
		}
		if($_FILES['file']['type']=='image/jpeg'){
			$filetype='jpg';
		}
		if($_FILES['file']['type']=='image/gif'){
			$filetype='gif';
		}
		if($_FILES['file']['type']=='image/pjpeg'){
			$filetype='jpeg';
		}
		if($_FILES['file']['type']=='application/pdf'){
			$filetype='pdf';
		}
        $filename=date('YmdHis').'.'.$filetype;
		?>
		<div class="upload"><img src="../images/loading.gif" /><p>数据处理中,请勿关闭此窗口……</p></div>
		<?php
        move_uploaded_file($_FILES['file']['tmp_name'],'../../upload/'.$dir.'/'.$filename);
        if($form!='addpage'){
        echo "<script>input('".$filename."');window.close();</script>";
        }else{
            echo "<script>input('".$filename."');window.opener.$form.submit();window.close();</script>";
        }
    }

获取文件夹的名字,然后创建这个文件夹.这里是不是可以根据解析以及截断来获取到webshell呢.访问url里面的截断会直接造成
11
发现ASP的直接不解析。这里修改.php的来进行测试
11
上传成功,我们查看结果1111

发表评论