BossCMS RCE(上)

简介

BossCMS是一款基于自主研发PHP框架+MySQL架构的内容管理系统,能够满足各类网站开发建设的需求。系统开源、安全、稳定、简洁、易开发、专注为中小型企业及政企单位、个人站长、广大开发者、建站公司提供一套简单好用的网站内容管理系统解决方案。官网提供了大量的网站模板,可以让您不需要任何的专业技术就能轻松搭建您的网站,易操作、易上手、快捷方便的后台操作让您10分钟就会建立自己的网站。

工具准备

工具版本
mysqlV5.7.26
phpV5.6.9
seay源代码审计系统V2.1
phpstormV2021.3
phpstudy_proV8.1.1.3

路由分析

认识bosscms

打开cms目录后我们先去简单阅读一下BOSScms的README.md,看看设计者的对于自己的介绍,搜 集点信息看看注意事项,作者也是很nice都录制了视频。

寻找路由

这里打开cms目录后会有几个我们需要关注的目录,首先是admin目录这里可能就是后台功能目录,install目录是安装cms的功能目录配置数据库文件、初始化cms功能等,upload目录为上传文件存储目录。

我们直接进入根目录下的index.php,看看会有什么发现,这里定义了四个常量和一个利用文件包含 system目录下的enter文件,我们跟进去看看enter文件。

这里enter文件设置了一下请求头内容、时区、一些常量,在最后继续进行文件包含into.class.php 文件,调用into文件中的load()方法,我们继续跟进。

这里self了一下,我们看看self方法的定义,就是调用本类中的静态方法和属性,也可以访问父类的。这里就是返回一下调用本类下的load_class()方法,那我们继续跟进一下。

这里该load_class()方法需要四个参数,我们先来进去第一个if逻辑判断一下$type类型因为初始赋值 为null,直接进入判断if逻辑,这里涉及前后台功能调用,如果是IS_INSIDE是true进入system/admin目录功能,如果是fales进入system/web目录功能。

这里简单的思考了一下,为什么会做到前后台功能分开调用呢,看了一下代码发现,在admin/index.php存在常量IS_INSIDE为true,如果是admin/index.php下的load下的类就会存在该常量,自然做到了前后功能分离,感觉这样设计思维真的很巧妙~

$func先检查一下是否在包含的类里面,也就是$part里面就利用回调函数call_user_func()实现。

也就是我们路由分析下来就是需要传入的值为?mold=&part=&func,而通过分析我们发现mold值为system目录的下级目录,而part为功能目录下的实现文件,而func值为该实现文件的方法。通过输入admin验证一下猜想,基本符合。

  • 5
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值