秘密-漏洞英文bug-新手网络安全技巧

秘密-漏洞英文bug-新手网络安全技巧

前言

前段时间的比赛将该cms作为了题目考察,这个cms的洞也被大佬们吃的差不多了,自己也就借此机会来浅浅测试下这个cms残余漏洞,并记录下这一整个流程,谨以此记给小白师傅们分享下思路,有错误的地方还望大佬们请以指正。

安装

参考官方文档,给出了很详细的安装说明,如安装遇到问题,可到官方论坛寻找解决方法,常见安装失败问题都有。

#https://gitee.com/link?=https%3A%2F%2F%%

spring漏洞_漏洞英文_漏洞英文bug

该cms项目是基于框架开发的,安装的时候需要的环境为 +redis+mysql+ IDEA

配置文件主要是这两个-prd.yml和-dev.yml,需要配置好mysql数据库连接、redis连接以及网页静态资源路径,其余的安装上面的一步步安装即可。

spring漏洞_漏洞英文_漏洞英文bug

安装成功后访问登陆页面

spring漏洞_漏洞英文_漏洞英文bug

管理员账号密码已经给了,直接登录。

spring漏洞_漏洞英文_漏洞英文bug

漏洞测试风格管理模板存在任意编辑文件实现命令执行

经测试,发现后台风格管理模板上传主题压缩包时可以进行污染压缩包theme.json文件,达到目录穿越到服务器敏感目录,从而在模板管理在解析时没有进行检测可以任意编辑系统敏感文件导致,控制服务器权限。

【----帮助网安学习,需要网安学习资料关注我,私信回复“资料”免费获取----】

① 网安学习成长路径思维导图

② 60+网安经典常用工具包

③ 100+SRC漏洞分析报告

④ 150+网安攻防实战技术电子书

⑤ 最权威CISSP 认证考试指南+题库

⑥ 超1800页CTF实战技巧手册

⑦ 最新网安大厂面试题合集(含答案)

⑧ APP客户端安全检测指南(安卓+IOS)

漏洞产生的主要文件:主题上传文件:src/main/java/cc//cms//admin/.java, 找到add方法。

漏洞英文_漏洞英文bug_spring漏洞

首先是判断文件是否存在以及JSON解析是否正确;判断Key是否都存在;判断对应值是否为空;创建theme对象;判断设置路径是否已""开头。最后校验主题包各种配置是否正确。确认的话就成功上传。

但是没有对路径问题进行检测,便可构造目录穿越,这也是该漏洞造成的关键原因。

最后是判断上传的压缩包里的各类信息无误后进入处理保存文件逻辑的save方法。

漏洞英文_漏洞英文bug_spring漏洞

在上传的主题包里的\\-cms\\\theme.json文件,将目录穿越的构造替换主题包路径,更改之后theme.json文件内容如下:

{
    "themeName":"新版主题",
    "themeImage":"http://localhost:8888/resource/img/dreamercms-logo.png",
    "themeAuthor":"",
    "themePath":"../../../../../../../../../../../../../../"//此路径要和模板文件夹的名称一致
}

虽然有检测,但是在之前已经被污染了,所以相当于检测相当于没有。接着检查是否有权限,方法也没有问题。

spring漏洞_漏洞英文_漏洞英文bug

``

最后就是保存文件。到此时后台模板已被刚刚传入的构造污染,可以进行利用,效果如下:

将修改后的主题包上传

漏洞英文bug_漏洞英文_spring漏洞

风格页面会多出一个新的主题

漏洞英文_spring漏洞_漏洞英文bug

点击启用。然后查看模板管理页面,发现目录穿越成功,成功进入服务器的根目录,这时就相当于在自己服务器上编辑修改文件。

spring漏洞_漏洞英文bug_漏洞英文

测试文件为/home/www 目录下的1.txt文件,原本是空文件。

漏洞英文bug_spring漏洞_漏洞英文

在页面修改该文件,添加内容

spring漏洞_漏洞英文_漏洞英文bug

然后保存,再到服务器里查看,成功将内容加入。

漏洞英文bug_spring漏洞_漏洞英文

如果修改文件便可进行免密登录,利用压缩校验不正确从而上传任意危险文件,例如一句话木马等来获取系统权限;还可以获取系统文件获取敏感信息,也可以写计划任务进行命令执行。

该漏洞分析到此为止,接着是附件管理模板可以进行任意文件下载、删除。

附件管理模板可以进行任意文件下载、删除。

漏洞产生主要文件:

src/main/java/cc//cms//admin/.java添加附件功能的代码如下:

漏洞英文bug_漏洞英文_spring漏洞

首先肯定是先添加附件,这里没有对参数进行过滤。导致保存附件的时候目录穿越的构造就被保留了下来,对其进行解析后就可以将服务器的指定文件随意下载、删除,从而对服务器构成威胁。

下载、删除功能的代码都在同一个文件,都是通过刚刚的参数,然后使用.()获取服务器文件路径,对其进行解析。

先看下载功能的代码:

spring漏洞_漏洞英文bug_漏洞英文

这里也没有对 变量进行过滤,所以总的来说就是添加附件和下载附件的两处代码,都没有对相应的变量进行检测过滤,从而导致漏洞产生。

删除功能的代码:

spring漏洞_漏洞英文_漏洞英文bug

删除的话就没什么好说的,和上面一样的原理,试想下,如果可以任意删除服务器的配置文件,那不就相当于服务器要崩的节奏。

漏洞演示如下:

还是利用刚刚/home/www目录下的1.txt文件

spring漏洞_漏洞英文_漏洞英文bug

在添加附件模块先随便上传一个本地文件(这里随便上传了一个theme.txt文件)

漏洞英文bug_漏洞英文_spring漏洞

抓包如下

spring漏洞_漏洞英文_漏洞英文bug

需要改的就是这个参数对应的文件路径,将其修改为

../../../../../../../../../../../../../home/www/1.txt

然后放包。

漏洞英文_漏洞英文bug_spring漏洞

刷新页面,观察到多了一个theme.txt文件,下载下来并打开内容如下:

漏洞英文bug_漏洞英文_spring漏洞

漏洞英文_spring漏洞_漏洞英文bug

服务器里的/home/www/1.txt里的内容 已成功写入本地theme.txt文件,任意下载文件成功。

删除效果,点击右边的删除。

漏洞英文bug_spring漏洞_漏洞英文

发现该1.txt文件被删除了,任意删除文件成功。

模板管理存在任意文件包含

产生漏洞的主要文件:src/main/java/cc//cms//tags/.java

漏洞英文bug_spring漏洞_漏洞英文

If语句只是简单判断值是否为空,但是没有检测过滤字符,导致可以传入目录穿越的构造../../../../../../../../../../../../../home/www/1.txt进行文件包含,读取里面内容。接着在模板管理找到.html

将../../../../../../../../../../../../../home/www/1.txt写入div标签并保存,如下图

spring漏洞_漏洞英文bug_漏洞英文

接着访问主页里的关于我们:

漏洞英文bug_spring漏洞_漏洞英文

可以看到,成功进行了文件包含,如将构造/home/www/1.txt换成/etc/这类敏感文件,则被攻击者获取到关键信息,这里也测试下:修改构造

spring漏洞_漏洞英文bug_漏洞英文

页面如期输出/etc/文件里的信息。

spring漏洞_漏洞英文_漏洞英文bug

总结

本文测试是在该cms旧版本上进行的,新版本对已有问题已进行了修复,这次对该java实现的cms漏洞挖掘收获满满,对cms安装、部署以及代码审计中要注意的点得到了良好的锻炼。

~

网络安全学习,我们一起交流

~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值