无框架的php cms审计,第一次代码审计之HsycmsV2.0—MVC框架

1.从开始出发—初步介绍MVC框架

MVC顾名思义是三个单词的首字母放在一起的简称,M-model(模型),V-view(试图),C-controller(控制器),其间的联系又是怎么样的呢,日常贴图

99879d4dca5a

至于MVC框架的具体运作方式,会在后面的文章的介绍,在此不做过多赘述。

2.写配置文件

在mvc框架中,需重点审核的就是控制器下所对应的php文件。从安装开始,

99879d4dca5a

index.php是入口文件,install是模块,index控制器,check.html对应的是方法,详细介绍见

99879d4dca5a

《ThinkPHP5快速入门》

代码审计

99879d4dca5a

在app/install/controller/index.php文件中,首先是config()方法,

99879d4dca5a

在此处,变量$DB被赋值,已经是一个数组,可以看到,$db是可控的,继续跟进$DB,发现在后面的session()方法中,将$DB的值赋给db_config作用是设置session。见图

99879d4dca5a

99879d4dca5a

跟进db_config,发现其进入sql方法,并赋值给变量$dbconfig,并通过write_config()方法赋值给变量$conf,利用seay全局搜索write_config(),

99879d4dca5a

发现此方法在app/install/common.php文件中,并且只是做简单的替换,没有任何过滤或者别的处理,直接写入database.php文件,于是便可以任意写配置文件。

99879d4dca5a

99879d4dca5a

在这里写。

但道路纵使曲折的,写进去了,但安装失败。参考Jokuuy师傅的文章发现,只有在write_config()之前的所有执行不报错的情况下,该方法才会执行。且如果想在数据表前缀处写一句话,则必须结合sql语句进行构造,否则安装数据库失败

99879d4dca5a

就像这样。

此处又看了师傅们的文章,水平有限,真的定位不到这里了

99879d4dca5a

之后就知道了,构造如下payload,

99879d4dca5a

sy_user` set password=1 or '.@eval($_POST["q"]).'#

99879d4dca5a

成功getshell,

99879d4dca5a

该文章参考Jokuuy师傅。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值