一、cms简介:
oasys是一个OA办公自动化系统,基于springboot框架开发,使用Maven进行管理的项目
本文是关于oasys CMS漏洞分析学习,将围绕存任意文件读取漏洞进行分析学习,大纲:
1、环境搭建
2、文件读取漏洞分析
二、环境搭建
下载源码,使用idea导入
创建相应的数据库,更改配置信息
然后启动环境,登录到后台
三、文件读取漏洞分析
这里我们使用的方法是黑盒审计
在该控制器的image方法,存在任意文件读取漏洞,代码如下:
主要代码分析
String projectPath = ClassUtils.getDefaultClassLoader().getResource("").getPath();
System.out.println(projectPath);
尝试获取项目的根路径,并打印出来。这通常用于调试目的,以确认程序正在使用正确的路径。
String startpath = new String(URLDecoder.decode(request.getRequestURI(), "utf-8"));
获取原始请求的URI,并对其进行URL解码,以确保任何编码的字符都被正确解析。例如,空格会被转换回%20。
String path = startpath.replace("/image", "");
从解码后的请求URI中移除/image部分,从而得到相对于/image的路径。
File f = new File(rootpath, path);
创建一个File对象,代表服务器上基于rootpath和调整后的路径的实际文件位置。
我们验证一下,因为是在windows系统下,文件的根路径不会像Linux系统一样是统一的根路径,而是自己的底盘。
我们这里在G盘根目录下创建了一个1.txt
发现可以读取到文件,说明存在任意文件读取漏洞
show方法,也跟image方法一样都存在任意文件读取漏洞,同image分析方法一样