OpenSNS任意文件删除+IIS6.0(getshell)

没穿底裤 2020年1月1日04:05:07评论415 views字数 1723阅读5分44秒阅读模式
摘要

漏洞文件:/Application/Weibo/Controller/IndexController.class.php获取当前登录的uid,然后获取上传的FILES进入upload

正常的一个流程

这里有一个check检测,跟进

对后缀进行了检测.所以我们得必须满足后面.jpg这个条件

文件名的控制

当saveName为空时则true并截取我们上传的文件名

最后则是检测后缀还有MIME类型,true则进入uplandfie.复现

为了方便我var_dump了出来

成功上传
任意文件删除:

漏洞文件:/Application/Weibo/Controller/IndexController.class.php

public function uploadMyExp(){           $flag=1;         $uid=is_login();         $mycollection='mycollection';           $config = array(             'maxSize' => 5*1024*1024,             'rootPath' => './Uploads/',             'savePath' => 'Expression/'.$mycollection.'/',             'saveName' => '',             'exts' => array('jpg', 'gif','png','jpeg'),             'autoSub' => true,             'subName' => '',             'replace' => true,         );         if($_FILES['file']['size']<5*1024||$_FILES['file']['size']> 5*1024*1024){             echo json_encode('-3');             $flag=0;         }         $upload = new pload($config); // êμày»ˉéÏ′«àà         $info = $upload->upload($_FILES);         if (!$info) { // éÏ′«′íÎóìáê¾′íÎóDÅÏ¢             echo json_encode('-1');             $flag=0;         }

获取当前登录的uid,然后获取上传的FILES进入upload
OpenSNS任意文件删除+IIS6.0(getshell)
正常的一个流程
OpenSNS任意文件删除+IIS6.0(getshell)
这里有一个check检测,跟进
OpenSNS任意文件删除+IIS6.0(getshell)
对后缀进行了检测.所以我们得必须满足后面.jpg这个条件
OpenSNS任意文件删除+IIS6.0(getshell)
文件名的控制
OpenSNS任意文件删除+IIS6.0(getshell)
当saveName为空时则true并截取我们上传的文件名
OpenSNS任意文件删除+IIS6.0(getshell)
最后则是检测后缀还有MIME类型,true则进入uplandfie.复现
OpenSNS任意文件删除+IIS6.0(getshell)
为了方便我var_dump了出来
OpenSNS任意文件删除+IIS6.0(getshell)
成功上传
任意文件删除:

$name=I('post.name','','op_t');         $allname=substr($name,strrpos($name,'/')+1,strlen($name)-strrpos($name,'/')-1);        // $iname=substr($allname,0,strrpos($allname,'.'));         $rp= $this-> ROOT_PATH = str_replace('/Application/Weibo/Controller/IndexController.class.php', '', str_replace('/', '/', __FILE__));         $path = $rp."/Uploads/Expression/" ;         if(!file_exists($path.$mycollection)){           mkdir($path.$mycollection,0777,true);         }         $path0=$rp.'/Uploads/Expression/'.$mycollection.'/'.$allname;         $file=file_get_contents($path0);         $map['md5']=md5($file);        $iexp_id=$iexpression->where($map)->getField('id');         if($iexp_id){             $map1['iexpression_id']=$iexp_id;             $map1['uid']=$uid;             $res=$iexplog->where($map1)->select();             if($res){                 echo json_encode('0');                 $iexp_path=$iexpression->where($map)->getField('path');                 if($iexp_path!="/Uploads/Expression/".$mycollection.'/'.$allname)                 {                     unlink($path0);                 }

Post获取name并进入了op_t函数
OpenSNS任意文件删除+IIS6.0(getshell)
可以看见这是针对安全过滤,并没有针对路径跳转过滤
OpenSNS任意文件删除+IIS6.0(getshell)
然后进行截取,很简单的就可以绕过的一种截取
OpenSNS任意文件删除+IIS6.0(getshell)
这里就很狗血的一段了!进入数据库查询当查询出来的内容与我们输入的内容不符合的时候则删除不符合内容

本机先新建一个文件
OpenSNS任意文件删除+IIS6.0(getshell)
这里去请求
OpenSNS任意文件删除+IIS6.0(getshell)
OpenSNS任意文件删除+IIS6.0(getshell)

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
没穿底裤
  • 本文由 发表于 2020年1月1日04:05:07
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   OpenSNS任意文件删除+IIS6.0(getshell)https://cn-sec.com/archives/76953.html

发表评论

匿名网友 填写信息