java审计之ofcms

举报
亿人安全 发表于 2023/05/19 20:51:06 2023/05/19
【摘要】 搭建环境Github地址如下:"https://github.com/yuzhaoyang001/ofcms"然后使用idea导入war包配置tomcat然后创建数据库运行sql文件然后配置好数据库文件根据自己安装的mysql版本配置pom.xml后台地址:http://localhost:8081/ofcms_admin_war/admin/login.html账号,密码 admin / ...

搭建环境

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")}

图片

图片


参考:https://blog.csdn.net/Little_jcak/article/details/126420014

https://blog.csdn.net/weixin_44522540/article/details/122844068

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。