您的位置:网站首页 > net源码 > 正文

小众CMS vaeThink v101 代码执行漏洞挖掘分析

类别:net源码 日期:2019-12-23 14:59:54 人气: 来源:

  东哥格格本文是对一个小众CMS(vaeThink v1.0.1)进行分析、代码执行漏洞挖掘和审计过程的记录,该CMS基于ThinkPHP5开发。作为一名代码审计的入门菜鸟,也希望能够将实践和学习的过程记录和分享,以期能够与大家共同交流进步。

  得到CMS的项目源码后,不着急进行源码的白盒审计,可以先将CMS部署和运行起来,认识和了解其功能点,同时进行黑盒测试。

  该CMS的部署比较简单,只要有LAMP的,并且将网站根目录指向public目录即可,接着根据提示安装。安装完成之后,访问该CMS直接出现登录页面:

  需要注意的是,一般在登录功能处可能存在SQL注入漏洞,但是本文着重挖掘代码执行漏洞的挖掘,因此其他类型会略过,我们继续通过安装时设置的管理员账号登入后台,进一步了解后台的其他功能点:

  在系统/配置菜单中,存在与网站信息、邮件和短信配置相关的功能页面。在不进行源码审计的情况下,首先查看数据库中的数据表和字段,发现没有存储和这些配置相关的信息,可以猜测这些信息可能直接经过处理后存储在某个配置文件中,经过对项目目录的大致了解,应该是在data/conf下。

  但是测试发现,可控内容前的return会直接返回,注入的代码并没有被执行。另外,注意一下配置文件的径可以发现,data目录不是一个可以直接访问到的网站径,除非能够配合其他的径穿越或者文件包含漏洞才有更进一步的可能,这里的日志文件也是同理。

  几条暂时被堵死了不要慌,继续观察CMS的其他功能点。在管理员的修改个人信息页面,发现存在一个头像上能,简单选择一个t.php上传,页面提示文件类型错误,不排除这只是一个前端校验的可能,我们通过抓包修改文件后缀继续进行上传:

  该CMS除了头像功能点直接的文件上传之外(过于简单。。),还有没有可能存在其他角度的漏洞点呢?比如用户输入可以直接作为某些代码执行函数的参数,导致任意代码执行。怀着疑问我们继续对CMS开始进一步的挖掘,PHPStorm启动!XDebug配置!

  变量来自上一行的$rule[condition],并且替换了{(\w*?)},但是没有进行其他的过滤操作:

  通过分析和函数名可以大致对该函数作用有了解,是对通过用户id获得用户组权限,并且返回权限列表。

  到此,基本可以确定在管理员访问鉴权功能模块中会触发此流程。接着下断点进行动态调试,便于对变量值的查看,我们选择菜单中的任何一个选项进行访问,执行流程会经过上述我们分析过的检查函数中:

  分析后可以确定,数据库中用户拥有的权限对应的规则的condition字段将会作为eval的参数被执行

  接着继续确定数据表中的condition字段是否为用户可控,分析后可以发现,在后台的系统/节点 页面中存在对该数据表的操作功能,而附加规则对应数据表中的condition字段:

  本文针对代码执行漏洞,从配置文件、日志文件和缓存文件的写入,文件上传以及函数执行参数可控的角度对vaeThink v1.0.1进行简单地挖掘和分析。全文内容比较简单,目的是记录和分享交流,请大佬轻喷。

  

关键词:cms源码下载
0
0
0
0
0
0
0
0
下一篇:没有资料

相关阅读

网友评论 ()条 查看

姓名: 验证码: 看不清楚,换一个

推荐文章更多

热门图文更多

最新文章更多

关于联系我们 - 广告服务 - 友情链接 - 网站地图 - 版权声明 - 人才招聘 - 帮助

CopyRight 2002-2012 技术支持 源码吧 FXT All Rights Reserved

赞助合作: