最近thinkcmf爆出了一个后台登录后的远程代码执行漏洞
非常好奇看了下决定写一个分析过程分析下如何执行代码的。如何搭建环境就不多介绍了大家可以phpstudy或者xampp,thinkcmf
的源代码可以矗接从github或者码云上下载。 历史版本自己找下,下面开始我的分析
在去数据库里面搜寻会在表cmf_route里面发现一条一样的记录。
然后切换左侧菜单僦会报错如下
那到底是什么时候触发呢这就和cms采用的thinkphp框架有关了。
我们在用phpstorm加载目录下的代码直接分开下断看什么时候结束
框架在初始化的时候会去加载规则,而thinkcmf把规则设置成了可以后台添加并且保存到数据库之后在从数据库读取加载,加载的时候没有严格过滤导致叻框架加载的时候include直接执行了到这里一切思路就变得清楚了。由于要后台登陆修改就显得这个漏洞变得有点鸡肋了不如thinkphp5最近爆出的直接远程代码执行漏洞来的直接。就当做练习吧