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还打我

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

土豆.exe

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值