phpems最新版V3.1前台getshell
首页 > web安全 > 代码审计    作者:webbaozi   2016年11月23日 17:25 星期三   热度:1214°   百度已收录  
时间:2016-11-23 17:25   热度:1214° 

下载地址:

http://www.mycodes.net/53/5773.htm

在测试过程中,发现可以截断上传,如下步骤。

首先注册一个账号,然后选择上传图片

111.png

跟进-文件document->api.php文件swfupload函数

$fileurl = $this->files->uploadFile($upfile,$path,NULL,NULL,$this->allowexts);

继续跟进uploadfile函数

文件lib/files/files.cls.php

        //上传文件

public function uploadFile($file,$updir,$sExtension = NULL,$name = NULL)
        {
               if(!$sExtension)$sExtension = $this->getFileExtName($file['name']);
               if(!$name)$name = time().rand(1000,9999);
                if(!file_exists($updir))$this->mdir($updir);
               $url = $updir.$name.'.'.$sExtension;
               if(file_exists($url))unlink($url);
               move_uploaded_file( $file['tmp_name'], $url ) ;
               if (file_exists($url))
               {
                       $oldumask = umask(0) ;
                       chmod( $url, 0777 ) ;
                       umask( $oldumask ) ;
               }
               return $url;
        }

if(!$sExtension)$sExtension = $this->getFileExtName($file['name']);
move_uploaded_file( $file['tmp_name'], $url ) ;

获取文件名,跟进getFileExtName函数

        //获取文件扩展名

        

public function getFileExtName($filename)
        {
               $filename = strtolower($filename);
               $exts = explode('.',$filename);
               $ext = $exts[count($exts)-1];
               if(strpos($ext,'?') >= 0)
               {
                       $ext = explode('?',$ext);
                       return $ext[0];
               }
               else
               return $ext;
        }

没做任何判断导致可以截断

 

burp抓包:

222.png

%00截断,点击go

 333.png

 然后访问文件:

444.png

 

OK
二维码加载中...
本文作者:webbaozi      文章标题: phpems最新版V3.1前台getshell
本文地址:http://www.webbaozi.com/dmsj/16.html
版权声明:若无注明,本文皆为“baozi|学与用”原创,转载请保留文章出处。

返回顶部    首页    手机版本   
版权所有:baozi|学与用    站长: webbaozi  蜀ICP备16032848号-1