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框架写的,但是开发者还是没有考虑太多的安全问题,在掌握了框架的一些应用规则后,代码审计的思路都是相通的,多实践才能多知晓。

时间: 04-06

Catfish CMS漏洞集合的相关文章

漏洞集合

启航企业建站系统 cookie注入漏洞通杀所有版本 直接上exploit:javascript:alert(document.cookie="id="+escape("1 and 1=2 union select 1,username,password,4,5,6,7,8,9,10 from admin"));test:http://www.tb11.net/system/xitong/shownews.asp?id=210---------------------

齐博cms最新SQL注入网站漏洞 可远程执行代码提权

齐博cms整站系统,是目前建站系统用的较多的一款CMS系统,开源,免费,第三方扩展化,界面可视化的操作,使用简单,便于新手使用和第二次开发,受到许多站长们的喜欢.开发架构使用的是php语言以及mysql数据库,强大的网站并发能力.于近日,我们SINE安全公司发现齐博cms又爆出高危的sql注入漏洞,关于该网站漏洞的详情,我们来详细的分析漏洞的产生以及如何利用. 在对整个网站代码的漏洞检测中发现do目录下的activate.php存在可以插入恶意参数的变量值,我们来看下这个代码: 齐博cms漏洞详

CMS网站漏洞检测对获取管理员密码漏洞如何修复

PbootCMS是网站常用的一款CMS系统,是由国内著名程序开发商翔云科技研发的一套网站CMS系统,免费开源,扩展性较高,使用的企业很多但是避免不了网站存在漏洞,SINE安全对其代码进行安全审计的同时发现该pbootcms 存在严重的漏洞,包含SQL注入获取管理员密码漏洞,以及远程代码注入执行漏洞.该pbootcms系统采用的是PHP语言开发,数据库是MYSQL,并支持pgsql数据库大并发处理,系统默认支持的服务器环境,PHP5.3版本以上,以及mysql版本5.6,apache,nginx,

Web漏洞扫描工具(批量破壳、反序列化、CMS)?

web漏洞扫描工具 一,Nikto,一款开源软件,不仅可用于扫描发现网页文件漏洞,还支持检查网页服务器和CGI的安全问题.它支持指定特定类型漏洞的扫描.绕过IDC检测等配置.该工具已集成于Kali Linux系统. nikto可以扫描软件版本信息,存在安全问题的文件,服务器配置问题,WEB Application层面的安全隐患,避免404误判等 扫了一下我自己的网站,好多问题...有XST攻击(XST是利用XSS和HTTP TRACE方法的组合.),apache的MultiViews利用 Mul

文件上传漏洞及解析漏洞总结

文件上传漏洞是指用户上传了一个可执行的脚本文件,并通过此脚本文件获得了执行服务器端命令的能力.这种攻击方式是最为直接和有效的,"文件上传"本身没有问题,有问题的是文件上传后,服务器怎么处理.解释文件.如果服务器的处理逻辑做的不够安全,则会导致严重的后果. 文件上传后导致的常见安全问题一般有: 1)上传文件是Web脚本语言,服务器的Web容器解释并执行了用户上传的脚本,导致代码执行. 2)上传文件是Flash的策略文件crossdomain.xml,黑客用以控制Flash在该域下的行为(

Nmap备忘单:从探索到漏洞利用 Part1

在侦查过程中,信息收集的初始阶段是扫描. 侦查是什么? 侦查是尽可能多的收集目标网络的信息.从黑客的角度来看,信息收集对攻击非常有帮助,一般来说可以收集到以下信息: 电子邮件.端口号.操作系统.运行的服务.Traceroute或者DNS的信息.防火墙识别和逃逸等等 NMAP的简介 nmap是一个网络连接端扫描软件,用来扫描网上电脑开放的网络连接端.确定哪些服务运行在哪些连接端,并且推断计算机运行哪个操作系统(这是亦称 fingerprinting).它是网络管理员必用的软件之一,以及用以评估网络

[网站运营]浅谈如何尽可能的避免cms网站被黑

第一.去掉cms特征    一般黑客都会批量获取网站漏洞,而可以这样操作的唯一依据在于:同类型网站具有的共同某些特征.既然如此,那么我们用某些类型的cms时,就可以从这些方面入手.改掉这些特征,可以避免被一些程序批量扫描.比如:一些具有漏洞的目录,dedecms中的plus,date 这些目录都可以改,不过,需要懂php程序才能去懂,如果是在不懂程序,可以改一些简单的文件名也可以,比如dede以前搜索漏洞,扫描程序就是在扫描search.php,不妨改成s.php也是可以运行的,而且不会被程序扫

文件上传漏洞(绕过姿势)

文件上传漏洞可以说是日常渗透测试用得最多的一个漏洞,因为用它获得服务器权限最快最直接.但是想真正把这个漏洞利用好却不那么容易,其中有很多技巧,也有很多需要掌握的知识.俗话说,知己知彼方能百战不殆,因此想要研究怎么防护漏洞,就要了解怎么去利用.此篇文章主要分三部分:总结一些常见的上传文件校验方式,以及绕过校验的各种姿势,最后对此漏洞提几点防护建议.(根据个人经验总结,欢迎补充纠错~~) 文件上传校验姿势 客户端javascript校验(一般只校验后缀名) 服务端校验 文件头content-type

kali安全的一些笔记

偶尔学习安全,作了一些笔记,比较乱,希望对大家有用 1.本机性能监控软件(目前可以分布式):zabbix   ./configure --prefix=  --enable-agent 2.linux主机型HIDS:OSSEC HIDS 3.kali linux初始化配置:http://www.linuxidc.com/Linux/2014-05/102206.htm http://xiao106347.blog.163.com/blog/static/215992078201342410347