安全矩阵

 找回密码
 立即注册
搜索
查看: 2535|回复: 0

对某系统的Java代码审计

[复制链接]

855

主题

862

帖子

2940

积分

金牌会员

Rank: 6Rank: 6

积分
2940
发表于 2021-9-23 20:15:55 | 显示全部楼层 |阅读模式
原文链接:对某系统的Java代码审计

序言
偶然拿到一款基于Spring开发的建站系统,简单看了看Web.xml,发现Servlet前面存在一个全局安全过滤,然后得到路由为Controller/方法名.do,接着直接定位到Class文件中,下文主要介绍本次审计中发现的安全问题。

Xss
在XxxxxController.Class中

  •         关键代码如下:
          
    1. String callback = request.getParameter("callback");
    2. jsonStr = ";" + callback + "(" + result.toString() + ")";
    3. out.write(jsonStr);
    复制代码

    前端不经过任何过滤,直接通过Request.getParameter获取参数,Out.write输出到前端解析导致Xss漏洞。
  •         任意文件上传
            在XxxxxController.Class中

接着跟到module类的tipOffService.saveTipOff中

  •         可以看到没有对后缀存在任何过滤,导致任意文件上传。
            关键代码如下:
    1. String path2 = Utils.uploadFile(video, String.valueOf(hdjlPath) + "/tipOff/video");
    2.               if (Utils.isNotNullOrEmpty(tipOff.getVideo())) {
    3.                   File file2 = new File(String.valueOf(SystemParamConfigUtil.getParamValueByParam("zdzyUploadPath")) + tipOff.getVideo());
    4.                   if (file2.exists()) {
    5.                       file2.delete();
    6.                   }
    7.               }
    8.               tipOff.setVideo(path2);
    复制代码

  •         逻辑漏洞(越权删除纠错信息)
            在XxxxxController.Class中,没有做权限校验,任意不信任的用户都可以调用此类
逻辑漏洞(越权删除纠错信息)
在XxxxxController.Class中,没有做权限校验,任意不信任的用户都可以调用此类

  •         import cn.com.trueway.cms.core.dao.RecoveryDao;
            是数据库处理的包,这里传入的ID会到传入进Sql语句,不过当然程序员使用${id}防止了Sql注入。
            String sql = JdbcUtil.montageSql("select t.id,t.email,t.ip,t.phone,t.name,a.msg_title,c.column_name,s.site_name  from t_cms
  •         未授权访问
            在XxxxxController.Class中

取出所有管理员信息并且以xml的形式打印到Html页面



回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|安全矩阵

GMT+8, 2024-11-29 17:41 , Processed in 0.013700 second(s), 18 queries .

Powered by Discuz! X4.0

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表