当前位置: 首页 > news >正文

CRMEB多端多语言系统文件上传0Day代审历程

Git仓库:

https://github.com/crmeb/CRMEB

简介:

两天攻防中,某政局子公司官网后台采用的CRMEB开源商城CMS,挺奇葩,别问怎么总让我碰到这种东西,我也不知道,主打的就是一个魔幻、抽象。最后通过审代码,绕过历史漏洞修复的补丁(文章内容可能有点少,没办法,这个代审快到了我只用了5秒)

水就完事儿了……

0x01、历史nDay漏洞探测:

别问,问就是谷歌(小型国内CMS百度也行,大型CMS更建议谷歌,配合团队漏洞库):

在这里插入图片描述

注:优先看能getShell的nDay漏洞 最开始以为没有能直接GetShell的历史漏洞,后来才发现第一条搜索结果里这个任意文件下载指的是对服务端进行文件下载,以此getShell

尊重版权,不再复述该nDay漏洞作者代审流程,链接在此:

https://blog.csdn.net/heartself/article/details/127522470

实际环境中该CMS为最新版本,经粗略复测该漏洞已修复,php落地失败!!!

0x02、代码审计0Day

1、审原漏洞修复是否可绕过

1.1、寻找功能点(根据nDay作者代审文件函数)

工程代码中,唯一一处存在临时落地文件包裹在抛异常的位置
(try代码异常则运行不到unlink删除临时文件代码)

在这里插入图片描述

这个位置如原作者做说,通过设置appid为空,即可抛异常(数据库事务中直播间商品是要和小程序appid绑定,appid空则异常抛错跳过unlink继续执行)。

跟进downloadImage下载函数,寻找漏洞修补代码:

在这里插入图片描述

可以看到,直接判断后缀是否为小写的php\js\html,我们可以通过大小写直接绕过。
同样可以通过再上传解析文件处理也可以。

至于目录构造方式,同样可以继续向下跟踪至getImageExtname函数:

在这里插入图片描述

1.2、二营长,开炮

着实没想到修补方案这么der,完全可以黑盒绕过,费不着代审。

根据nDay作者流程走,服务端部署文件后缀改成Php就可以了!

在这里插入图片描述

0x03、然后

昨晚我做了个梦,梦到Songqb吃[便便],我劝他他不听,他TMD还打我

http://www.lryc.cn/news/156184.html

相关文章:

  • 孙哥Spring源码第18集
  • 【STM32】文件系统FATFS与Flash的初步使用
  • Android Glide in RecyclerView,only load visible item when page return,Kotlin
  • 【SCI征稿】3个月左右录用!计算机信息技术等领域均可,如机器学习、遥感技术、人工智能、物联网、人工神经网络、数据挖掘、图像处理
  • Golang 中的 crypto/ecdh 包详解
  • 系统学习live555
  • Linux下的系统编程——进程的执行与回收(八)
  • 第十九章 ObjectScript - 执行例程
  • Podman安装与使用
  • C++ 嵌套循环
  • 锁( ReentrantLock,Synchronized)
  • 主频计算-架构真题(二十三)
  • docker安装redis实操记录
  • MobaXterm 突破14个session限制
  • 使用Redisson实现高并发抢红包
  • 【网络编程】TCP/IP协议(互联网的基石)
  • 【VS Code插件开发】自定义侧边栏、视图(六)
  • lv3 嵌入式开发-8 linux shell脚本函数
  • 国际版阿里云腾讯云免费开户:服务器怎样转移
  • 区块链实验室(20) - FISCO控制台连接到指定的节点
  • 网络渗透day10-工具和技术
  • SSE 和 WebSocket 应用
  • mac帧 arp
  • java面试题-Redis相关面试题
  • 你用过 Maven Shade 插件吗?
  • Android 后台启动Activity适配
  • 使用element-ui中的el-table回显已选中数据时toggleRowSelection报错
  • Ubuntu18.04系统下通过ROS控制Kinova真实机械臂-多种实现方式
  • 聊聊如何玩转spring-boot-admin
  • rocky(centos) 安装redis,并设置开机自启动