java审计之ofcms(二)

简介: java审计之ofcms

任意文件读取

但仅限读取html js css xml文件

710c178d9b204187515ca74f7224b128_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

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

3e6ed466f361fa0d1c8ae93db4e077b5_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

6d93c6d0c184e1c07208d9d124675439_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

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

cd092ef151fa6c9e6521b18f90dfac84_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

8bd2e81d118a74bd6095e85d874ef7ef_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

在idea找到这个方法

2706eb95682a88de6ec6cfd884a035e9_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

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

继续往下跟

0ed536107faaef82c0f66b38d9e140f9_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

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

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

90269fc8aac2a285c944e3948198db9e_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

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

090f952057310d4a9e7798019da03574_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

755ef9229404c6bab51ea235b2ee5517_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

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

ccb5341352952e14d374bf577573a355_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

通过这里读取到源码

fcce494eca807f69b2100c1afc3931d2_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

最后渲染到页面上

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

测试

0a9ab7a6f0a1a9d84f4a8d15f3803170_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

052ed94c694fb0a3e8bcf9985b835c66_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png



任意文件写入

还是上面这个Controller

e7cc2550eb5965df8cc2d2ed8ed5d2f5_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

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

3fe276b223efcc70253e42e7cf0bb366_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

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

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

测试

336715aa95c030eb226d63842f376972_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

17689ac2d61cb8ee5892212f8130781a_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png


相关文章
|
27天前
|
SQL 安全 前端开发
对于Java代码审计,主要的审计步骤如下:
### Java代码审计简介 Java代码审计是确保应用程序安全的重要步骤,主要包括以下几个关键环节: 1. **确定项目结构与技术框架**:了解项目的整体架构和技术栈。 2. **环境搭建**:配置开发环境,确保能够正常运行项目。 3. **配置文件分析**:重点分析`pom.xml`、`web.xml`等配置文件,特别是依赖组件的版本是否存在已知漏洞。
|
安全 Java API
Java审计之Freemarker模板注入漏洞
Java审计之Freemarker模板注入漏洞
10931 1
|
存储 XML SQL
Java审计之XSS篇
继续 学习一波Java审计的XSS漏洞的产生过程和代码。
185 0
Java审计之XSS篇
|
SQL 安全 前端开发
Java审计之SQL注入篇
本篇文章作为Java Web 审计的一个入门文,也是我的第一篇审计文,后面打算更新一个小系列,来记录一下我的审计学习的成长。
320 0
|
存储 Java 应用服务中间件
Java代码审计之jspxcms审计(三)
Java代码审计之jspxcms审计
493 0
Java代码审计之jspxcms审计(三)
|
Java
Java代码审计之jspxcms审计(二)
Java代码审计之jspxcms审计
268 0
Java代码审计之jspxcms审计(二)
|
存储 Java 数据库连接
Java代码审计之jspxcms审计(一)
Java代码审计之jspxcms审计
276 0
Java代码审计之jspxcms审计(一)
|
Java 测试技术 数据安全/隐私保护
|
SQL Java 关系型数据库
|
2天前
|
Java 程序员 开发者
Java社招面试题:一个线程运行时发生异常会怎样?
大家好,我是小米。今天分享一个经典的 Java 面试题:线程运行时发生异常,程序会怎样处理?此问题考察 Java 线程和异常处理机制的理解。线程发生异常,默认会导致线程终止,但可以通过 try-catch 捕获并处理,避免影响其他线程。未捕获的异常可通过 Thread.UncaughtExceptionHandler 处理。线程池中的异常会被自动处理,不影响任务执行。希望这篇文章能帮助你深入理解 Java 线程异常处理机制,为面试做好准备。如果你觉得有帮助,欢迎收藏、转发!
35 14