再次拿到了万众电子期刊在线阅读系统。搭建测试,修复了前台的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里面的截断会直接造成
发现ASP的直接不解析。这里修改.php的来进行测试
上传成功,我们查看结果