java审计之ofcms

VSole2022-12-30 11:05:58

Github地址如下:

"https://github.com/yuzhaoyang001/ofcms"

然后使用idea导入war包

配置tomcat

然后创建数据库

运行sql文件

然后配置好数据库文件

根据自己安装的mysql版本配置pom.xml

后台地址:http://localhost:8081/ofcms_admin_war/admin/login.html

账号,密码 admin / 123456

先大概过一遍功能点

因为前台看不到啥点所以就登录到后台观看

sql注入

在这里抓包

根据这个 找到 controller层

发现这里接收sql参数 然后update执行  我们打上断点来进行调试

随便输入一个

然后回到idea

可以看到外面输入的值

进入update函数

继续

经过一直调试

最后进入到这里执行  这里采用了预编译但是 是把整个sql语句进行预编译 不是把sql的参数 这样根本起不到效果

并且还进行了回显

用报错语句测试

因为是executeUpdate

所以只能用增删改的sql语句

update of_cms_ad set ad_id=updatexml(1,concat(1,user()),1)

任意文件读取

但仅限读取html js css xml文件

这里默认只能读取default里面的文件

因为第一次审计 不太了解框架结构 所以点击页面的时候进行抓包来寻找Controller层

在idea找到这个方法

dir是当前目录 也就是可查看代码的目录  这个是可控的 通过这里可以看出

继续往下跟

pathFile 则是根据传入的dir 获取到绝对路径

跟到这里则可以看到只能返回html xml css js

files则是default目录下的html等文件的绝对路径

然后在通过传的文件名 和 files里面的进行比较  默认是index.html

通过这里读取到源码

最后渲染到页面上

整个操作没有对dir进行限制 然后我们又可控 就能够读取其他目录的文件

测试



任意文件写入

还是上面这个Controller

可以发现只获取这几个参数的值

然后在这一行把content的进行了尖括号的替换

没有进行其他的过滤  可以任意写入

测试


任意文件上传

看到一个上传

还是根据数据包 找到代码

这里代码很少 一步一步跟进


这里看不出什么 继续跟进

这里通过new MultipartRequest进行上传文件

跟进

继续

这个函数没发现什么


发现这个函数

会判断jsp和jspx后缀

这里可以就可以通过windows的特性 来进行绕过 上传文件名为.jsp.

测试


第二处

这个函数也是和上面一样的 可以进行任意文件上传

这些都可以

越权修改密码

先创建一个普通用户

然后登录 修改密码


这里可以看到有一个user_id 修改这个 这里相当于 平常黑盒测试一样 改为1

可以看到admin的密码也变成asd123了

代码分析 根据数据包找到controller

根据日志也可以看到  是根据id来进行修改密码的 没有进行id和用户的绑定

有了修改密码的前提  我们会想到修改资料这些


模板注入

在pom.xml发现cms使用freemarker

在后台存在模板的修改

payload:<#assign value="freemarker.template.utility.Execute"?new()>${value("calc.exe")}


本作品采用《CC 协议》,转载必须注明作者和本文链接
java审计ofcms
2022-12-30 11:05:58
java审计ofcms
Java审计其实和Php审计的思路一样,唯一不同的可能是复杂的框架和代码。
Java程序使用ObjectInputStream对象的readObject方法将反序列化数据转换为java对象。但当输入的反序列化的数据可被用户控制,那么攻击者即可通过构造恶意输入,让反序列化产生非预期 的对象,在此过程中执行构造的任意代码。
MCMS 审计
2022-10-08 15:57:56
MCMS 是 J2EE 系统,完整开源的Java CMS,基于SpringBoot 2架构,前端基于vue、element ui。为开发者提供上百套免费模板,同时提供适用的插件,一套简单好用的开源系统、一整套优质的开源生态内容体系。十天前 MCMS 更新了新的一版本 5.2.9 提示新版本进行了 SQL 安全方面的优化,所以我们尝试 审计 MCMS 5.2.8环境搭建我们下载好安装包后利用 idea 打开项目创建数据库 mcms,导入 doc/mcms-5.2.8.sql修改 src/main/resources/application-dev.yml 中关于数据库设置参数运行MSApplication.java main方法利用账户名:密码?
今天分享的主题是开源软件漏洞挖掘实践,主要讲对于企业项目、开源项目审计的认识以及做代码审计的经验。
在学习java反序列化的过程中,Commons Collections几乎是反序列化学习中无法绕过的一关。也是各大ctf和awd的常见考点,作为java代码审计的重要一环,我们今天就来解析一下Commons Collections利用链。
域渗透实战 vsmoon
2023-11-14 10:40:10
域渗透实战 vsmoon
审计test.php,当参数$a不为空,且读取的文件中包含’I want flag’时,即可显示$flag。所以我们一般对其进行编码,让其不执行。从而导致 任意文件读取。POC1直接读取xxx.php文件,但大多数时候很多信息无法直接显示在浏览器页面上,所以需要采取POC2中方法将文件内容进行base64编码后显示在浏览器上,再自行解码。
生产环境资产对外服务资产是红队密切的关注点。对于安全设备所覆盖范围进行有效排查,尽可能做到无死角全覆盖。管理员应全面检查系统、数据库、对外服务相关权限设置,以确保最小权限原则,过期的授权应予以删除。对于大中型企业的资产较多,端口管控较为困难,红队通过对端口发起有效入侵是最直接、最有效的途径之一。为了更加安全,以防红队人员探测到web服务,也可
项目安装迷你天猫商城是一个基于Spring Boot的综合性B2C电商平台,需求设计主要参考天猫商城的购物流程:用户从注册开始,到完成登录,浏览商品,加入购物车,进行下单,确认收货,评价等一系列操作。作为迷你天猫商城的核心组成部分之一,天猫数据管理后台包含商品管理,订单管理,类别管理,用户管理和交易额统计等模块,实现了对整个商城的一站式管理和维护。
VSole
网络安全专家