【研究对象】
源码名称:Y|z|m|CMS
版本:v6.6(20220918)
源码作者:袁志蒙
【背景】
有朋友让我看看此CMS是否满足他的需求,顺便看看怎么防止他拿到使用者域名。所以才有了这次审计调研
【优点:表扬】
1. 作者代码确实干净,不过少部分代码好像抄袭了帝国phpcms(仅仅个人感觉)
2. 支持php8.0,这点我还是非常佩服,加分项
3. 代码加密部分,不依赖扩展,算是良心
4. 具备CMS该有的东西
【缺点:希望改进】
1. 作者你既然承诺了100%开源,为什么还有2个核心文件进行了简单加密,既然加密了就不叫100%开源了。
2. 代码不符合PHP-FIG组织定义的PSR规范(比如什么D函数,m函数,U函数,类文件名带有下划线), 应该作者之前用ThinkPHP用多了,被带歪了,这点可以有成长的机会
3. 2个加密文件
application/admin123sky/controller/index.class.php
每当站长进入后台public_home,就会在html代码封尾部,追加一个js请求作者网站后台服务器,而且收集了站长很多信息哦(收集信息就有点过分了,你收集域名可以,但服务器IP,mysql版本,php版本,你收集干啥,DDOS威胁?),所有收集逻辑都在下面这个代码里,你又给加密了。
application/admin123sky/common/lib/update.class.php
4. 后台地址admin,竟然无法自定义,按作者的解释,代码安全做得非常牛逼了。这点不可自定义admin后台目录,有点遗憾,也有点怀疑用途。
【总结】
1. 这套CMS,至少比我之前PbootCMS功能更好更完善;而且代码加密更简单,算作者人品比PB更好吧。推荐使用
2. 如果CMS已经满足你了,而且没有必要去买他的插件等等,完全可以二次开发或者不开发,直接解密后,注释掉“system_information”内原本函数,并写一行”echo $data;”即可,如上图
3. 在线升级版本这些东西,其实挺危险的,毕竟作者收集了很多东西,哪天要渗透进来(他要求很多目录给755/777权限,就是所谓执行权限),非常容易;建议不要在线升级了。而且其他任何产品,有在线升级的,都要慎用。
4. 防止作者找到你使用源码,最好的办法,改掉后台地址admin。已解决:方法–>A.需要改动几个函数,判断入参是admin,然后替换即可,B.而且要对数据库表menu中的m字段是admin的一起修改为新admin目录名