Catfish CMS漏洞集合

转自https://larryxi.github.io/

0x00 背景

文章内容仅作学习参考,勿以恶小而为

0x01 任意文件删除

拿到一个cms进行安装后,首先比较喜欢看看其安装逻辑,查找有没有在安装流程中直接导致重装的可能性。由于系统是THINKPHP5开发的,所以可以定位到application/install/controller/Index.php为安装的控制器,其中的check函数根据install.lock来保证系统不会被二次安装,如下:

不能直接重装的话,就只能借助unlink等函数看能不能删除任意文件进行重装,定位到application/user/controller/Index.php中的编辑头像的逻辑touxiang函数,如下:

其中第119~127行调用了unlink函数,意思是上传头像后删除原来的头像图片,具体步骤为:用户在客户端上传完头像后,客户端还会向这个touxiang函数POST新头像的url,然后程序将新url和旧url进行对比,不同的话就把旧url对应的(头像)文件删除,把新url写入到数据库中。

其中POST的url是我们可控的,而且程序也没有对url做任何限制,这样我们就可以删除任意文件乃至重装漏洞了。

那么我们来实际验证一下,首先在网站上注册一个用户,在上传完图片后用burp截获到POST 新url的请求:

我们把新url的路径改为install.lock对应的路径再重放过去 ,这样新图片的url就更改了,如下:

所以当我们再POST一个新的url,旧的url文件就会被删除了:

Install.lock文件被删除,所以导致了重装:

当用户上传完图片后,内部逻辑直接更新数据库就好,何必要信任恶意的外来输入呢。

0x02 用户评论处xss

由于这个框架的注入不是太好找,那就来看看有没有xss漏洞,首先从application/config.php看到其默认是没有任何过滤的:

那么根据用户的操作来定向追踪一下可能存在xss的点,开发者对于修改资料和提交留言处都对输入进行了htmlspecialchars处理,但在用户评论处application/index/controller/Index.php中:

开发者直接将post的评论内容插入数据库,这里就有可能导致xss漏洞了。在评论后抓包看一下:

开发者只是依据前端来进行过滤,这样的效果甚微,我们还是可以注入xss。在后台页面会直接从数据库拿出前5条评论输出显示,这样我们在提交评论后就可以影响到后台了,证明如下图:

0x03 任意评论或收藏删除

基于逻辑来寻找漏洞的话,可以看看用户有哪些操作可能导致越权等常规的逻辑漏洞,因此在application/user/controller/Index.php中找到这么一段逻辑:

这里未验证身份就可以删除对应id的评论和收藏,而且也没做任何的权限验证,那我们循环跑一遍请求就可删除所有的评论和收藏了。下图中不加sessionid即可删除对应评论:

0x03 后记

在测试任意文件删除的时候,我本地环境有点问题就直接上官网去测了,一时手快就直接让官网重装了,扰乱了人家的运营有些尴尬,这种敏感文件的操作还是尽量本地或demo站测试比较好。

在审计出任意文件删除后看到一位大牛的博客http://balis0ng.com/post/dai-ma-shen-ji/2017-03-27 ,审计的同一套系统,比我早三天,也可以拿来学习。

虽说这个CMS是用THINKPHP5框架写的,但是开发者还是没有考虑太多的安全问题,在掌握了框架的一些应用规则后,代码审计的思路都是相通的,多实践才能多知晓。

转载于:https://www.cnblogs.com/test404/p/6683299.html

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Catfish(鲶鱼) CMS是一款免费开源的PHP内容管理系统,可以免费商用,可以方便地用于新闻、博客、企业、门户、资源、学校、政府等各种不同类型的网站建设。 自动识别CMS、Blog 等网站类型,只要简单的切换主题就可以完成网站类型的切换。 多语言支持,包括简体中文、繁体中文、俄语、德语、法语、韩语、日语、英语各种语言。 全站自适应设计,适用于pc,手机等不同大小屏幕的终端显示,支持手机、微信等小屏幕访问。 Catfish(鲶鱼) CMS系统适合不同程度的使用者使用。 1、您不需要专业技术就可以轻松搭建您需要的网站,操作简单,灵活方便,稳定快捷。 2、Catfish(鲶鱼) CMS使用十分简单,也容易上手,快捷方便的后台操作让您10分钟就会建立自己的爱站。 3、如果您有一定的网页制作基础,那么您可以自己开发漂亮的主题,并方便地应用到Catfish(鲶鱼) CMS系统中。 4、更进一步,如果您有一定的php基础,那么您还可以开发自己的插件,并方便地应用到Catfish(鲶鱼) CMS系统中。 Catfish(鲶鱼) CMS系统特点: 简单 Catfish(鲶鱼) CMS设计是以“为使用者提供方便”为原则的,所以我们尽量做到让使用变得简单。 简单不仅体现在使用过程中,同时也体现在二次开发中,您可以在Catfish(鲶鱼) CMS系统基础上进行主题和插件的开发,并且这些开发也是相对简单容易的。 官方网站有主题和插件开发的说明文档。 灵活 由于Catfish(鲶鱼) CMS系统的独特设计,支持了该系统可以高度扩展,保证了系统的充分灵活性。 正因为系统高度灵活,所以Catfish(鲶鱼) CMS系统适合用于各种类型的网站,可以搭建出“如您所愿”的站点。Catfish(鲶鱼) CMS系统可以实现一个主题变身任意类型的网站,一个插件变身任意功能的网站。 开源 Catfish(鲶鱼) CMS系统是100%开源的PHP程序,这保证了系统的代码更健壮和更安全。 支持好 您可以免费下载并使用Catfish(鲶鱼) CMS系统,并且官方会不定期地升级系统,您也可以随时升级您的系统到最新版。 高可用性 百万级内容负载从容应对各种不同的建站需求。 安全 系统具备多重安全防护体系,Catfish(鲶鱼) CMS是目前最安全的CMS系统之一。 Catfish(鲶鱼) CMS系统的承诺: 免费 Catfish(鲶鱼) CMS系统面向所有用户免费使用,包括商业用途也可免费使用,是一款真正能免费使用的系统。 版权信息自定义 您可以在系统管理后台方便地修改和定义网站前台页面的版权信息。 功能无删减 秉持着开放的原则,Catfish(鲶鱼) CMS官方发布的系统一直是完整版程序,功能无删减。 专业的自动升级服务 使用Catfish(鲶鱼) CMS系统,只需一次安装,终身免维护,您只需要把精力集中到网站内容建设,无需顾及系统升级,因为Catfish(鲶鱼) CMS系统会对所有用户提供自动的升级服务。 详尽的教程 Catfish(鲶鱼) CMS官方网站提供了详尽的系统使用以及开发教程,包括网页、手册、电子书、视频教程等资料可以免费获取。 免费也要做到最好 Catfish(鲶鱼) CMS是一款可以免费使用的CMS系统,尽管可以完全免费使用,我们也尽自己最大的努力做到CMS产品最好,让您可以免费享用真正专业级的产品。 系统安装基本要求: PHP >= 5.4.X (注意:PHP5.4dev版本和PHP6均不支持) PDO PHP Extension MBstring PHP Extension CURL PHP Extension Catfish(鲶鱼) CMS 系统安装: 将解压后index.php所在目录的所有文件以及文件夹全部复制到您的WEB运行环境的根目录下。 复制完所有文件后,您可以打开浏览器,然后在浏览器的地址栏输入您站点的域名,系统将自动进入安装页面。例如:如果域名是127.0.0.1,那么只要在浏览器地址栏输入“127.0.0.1”就可以开始安装系统了。记住要换成您自己的域名哦! 如果有任何建议和提议可以到官方网站留言 Catfish(鲶鱼) CMS 更新日志: v5.9.6 更新: 支持PHP8; 调整了一些代码; 优化使用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值