蝉(feng)知(wo)cms

2024-02-23 14:40
文章标签 cms wo feng

本文主要是介绍蝉(feng)知(wo)cms,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

本文原创作者:EDI-VOID

原创投稿详情:重金悬赏 | 合天原创投稿等你来!

前言

前段时间朋友在渗透测试中遇到一个蝉知cms,于是一起审计出了不少漏洞,现在漏洞已经在新的版本中修复

正文

指纹识别

看了看源码,发现在好几个php中都存在一个判断 if(isset($_GET['mode']) and $_GET['mode'] == 'getconfig') die($app->exportConfig());  可以通过访问/index.php?mode=getconfig来获取目标cms的版本号,所有版本都有这个漏洞,响应为json。如下图:

可以看到版本号信息

在fofa上搜了几个蝉知cms验证了一下,都可以获取到版本信息

任意文件读取

搭建好环境,在测试后台和前台的功能时,在后台发现一个上传素材的地方

上传完素材精奇的发现文件的路径,是如下格式/123/www/file.php?f=source/default/default/password.txt&t=txt&o=source&s=&v=1524910657

于是复制下载丢到地址栏里一看,发现可以读取php文件的源码,只是有的目录没有权限而已

进一步审计其源代码,发现没有任何验证身份的代码逻辑

poc上场  /file.php? f=../index.php&t=txt&o=source  ,对,这里还可以跨目录,因为是cms,所以读取源代码是没有什么价值的,但是有不同的东西,就是数据库的配置文件等,于是翻阅cms的目录,发现system/config目录下的配置文件

逐个打开一看,有数据库的配置文件my.php,于是文件读取派上用场了,数了数目录层数,发现7.0版本的不可以读,有权限限制,pro1.6可以。

poc /file.php? f=../../system/config/my.php&t=txt&o=source

后台Getshell

想要getshell,就得找能生成自定义php的地方,继续测试功能,发现后台有一个编辑模版的地方,有可能有漏洞,点进去一看,这不就是直接在编辑php文件么

但是在源码里加上一句话却发现需要验证用户权限

如图所示,如果编辑模板需要管理员在cms的/system/tmp 目录下新建一个名字为jdga.txt的文件来验证权限你是否有写入权限。于是想起刚才的上传素材的地方可以跨目录上传文件,就想上传一个jdga.txt是否可以,于是操起burp抓包,数了数目录层数,把名称的参数改为../../../../../system/tmp/jdga,因为他这里本来文件名就没有后缀,说明他连接了一下字符串,我们也不必加后缀

此时成功将jdga.txt文件上传到了system/tmp目录下,绕过了权限验证

此时编辑模板,显示编辑成功

于是成功把验证的jdga.txt上传到了/system/tmp目录,此时再编辑模板文件,编辑的模板不在可以访问到的目录

继续抓包发现file参数可控

于是惯性思维,果然开发者又疏忽在了跨目录上,抓包改file参数,成功写入到www目录

验证

敬上杀器fofa

随便在前台html源码中提取一点特征,放到fofa的body关键字中搜索,于是出现一大堆蝉知cms的网站,比如搜索js的引用

body="chanzhi.all.js"  这里还可以在后面加上?v=pro1.6搜索指定版本的蝉知cms

首先getconfig获取版本号,成功

然后任意文件读取可以跨目录读取到数据库配置文件

这个配置文件的目录层数不可预测,我试了几个不一样,可以到时候自己加减目录层数尝试

试了下用数据库的帐号密码登录后台,以及换用户名为admin,没有登陆成功,有的管理员也许会疏忽把数据库密   码和后台密码设置成相同天的密码。

总结

对于一个刚入门的审计小白来说,总要总结一些大佬们早已经总结出的经验

黑盒测试从业务逻辑上下手,快速定位容易以及可能出现问题的地方。

所以审计一个cms的流程,不要从代码开始看,那就疯掉了,要先从业务逻辑开始,搭建好环境,从功能上找可能出现漏洞的地方,抓包,验证,看具体代码,面向获取更大权限的需求找其他的小漏洞或者小条件,cms是一群人开发的,每个人都有他的性格,于是相同的漏洞肯定出现好多次,比如这个跨目录。

看不过瘾?合天2017年度干货精华请点击《【精华】2017年度合天网安干货集锦》

别忘了投稿哦!

合天公众号开启原创投稿啦!!!

大家有好的技术原创文章。

欢迎投稿至邮箱:edu@heetian.com

合天会根据文章的时效、新颖、文笔、实用等多方面评判给予100元-500元不等的稿费哟。

有才能的你快来投稿吧!

点击了解投稿详情 重金悬赏 | 合天原创投稿等你来!

这篇关于蝉(feng)知(wo)cms的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/738970

相关文章

SEO之网站结构优化(十五-CMS系统)

初创企业搭建网站的朋友看1号文章;想学习云计算,怎么入门看2号文章谢谢支持: 1、我给不会敲代码又想搭建网站的人建议 2、“新手上云”能够为你开启探索云世界的第一步 博客:阿幸SEO~探索搜索排名之道 15、CMS系统 现在的网站绝大多数是通过CMS系统制作和管理的,SEO人员优化网站就会受限于CMS 系统本身的灵活性和功能。市面上有很多开源免费的CMS系统,如中文的dede(织梦)、

sickos 靶机渗透(wolf cms 渗透,squid 代理)

靶机信息 vulnhub靶机 主机发现 192.168.50.152 为靶机Ip ┌──(kali㉿kali)-[~/testSickos]└─$ sudo nmap -sn 192.168.50.0/24[sudo] password for kali: Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-08-30 09:56 C

垃圾收集器知识点总结-CMS

使用回收算法:标记清除 适用区域:老年代 回收过程: 1.初始化标记: 标记Root可达的对象。对于是否把年轻带作为root的这个问题,有不同答案,但是看到了代码里初始化标记的时候做了如下操作 初始化标记会执行到上述代码,然后第二个变量是true(可能对代码的理解有偏差) 2.并发标记: 标记新生代活的对象为Root;沿着Root标记存活的对象;在与程序运行期间,对象引用关系会变化,

【PyQt6 应用程序】CMS自动上稿12数据库综合版

在数字化时代,内容管理系统(CMS)的优化配置成为提高工作效率的关键步骤。CMS能够简化内容的创建、管理和发布过程,但对于初学者或是非技术人员来说,CMS的各项功能和操作可能显得复杂难懂。 使用本软件可以在配置好的数据中基于LM Studio进行批量文章撰写实现SEO。在原有单模板的基础之上增加了多站点管理,管理站点高达12个,实现了一套配置挂机无忧的工作环境。 单篇的操作效果可以参考文章:

垃圾回收器——CMS收集器

CMS[Concurrent Mark Sweep]收集器是一种以获取最短回收停顿时间为目标的收集器。  目前很大一部分的Java应用集中在互联网站或者B/S系统的服务端上,这类应用尤其重视服务的相应速度. 从名字就可以看出,CMS收集器是使用的标记清除算法,它的运作过程相当于前面几种收集器来说更为复杂,整个过程分为四个步骤: 初始标记,标记一下GC Roots能直接关联到的对象,速度很快

CMS收集器配置

HotSpot JVM的并发标记清理收集器(CMS收集器)的主要目标就是:低应用停顿时间。该目标对于大多数交互式应用很重要,比如web应用。在我们看一下有关JVM的参数之前,让我们简要回顾CMS收集器的操作和使用它时可能出现的主要挑战。 就像吞吐量收集器(参见本系列的第6部分),CMS收集器处理老年代的对象,然而其操作要复杂得多。吞吐量收集器总是暂停应用程序线程,并且可能是相当长的一段时间,

uni-CMS:全端开源内容管理系统的技术探索

摘要 本文介绍了uni-CMS,一个基于uniCloud开发的开源内容管理系统(CMS)。该系统旨在帮助开发者快速搭建并管理内容丰富的网站、小程序和移动应用。通过其全端渲染、内容安全检测、广告解锁付费内容以及AI生成文章等特性,uni-CMS不仅提高了开发效率,还促进了内容生产效率的提升和变现能力的增强。本文详细探讨了uni-CMS的技术架构、功能特性以及实施步骤,为开发者提供了一个全面的技术参

比较Freemaker和Nuxt.js作为CMS模板语言的特点

在开发内容管理系统(CMS)时,选择合适的模板语言至关重要。本文将讨论Freemarker和Nuxt.js这两种常用模板语言的特点,以帮助开发者选择最适合其项目需求的工具。 Freemarker的特点 Freemarker是一个基于Java的模板引擎,常用于Java Web应用开发中。以下是Freemarker的主要特点: 1. 易于集成 Freemarker作为Java生态系统的一部分,

易优cms远程调试

易优cms自ThinkPHP5.0版本开始,提供了Socket日志驱动用于本地和远程调试。 Socket调试 只需要在配置文件中设置如下: ‘log’ => [ ‘type’ => ‘socket’, ‘host’ => ‘slog.thinkphp.cn’, //日志强制记录到配置的client_id ‘force_client_ids’ => [], //限制允许读取日志的cl