admin管理员组

文章数量:1558696

文章目录

  • 前言
  • path_traversal
    • @RestController
    • 路径穿越
    • 修复方法

前言

期末考试周了,学了一天密码学,累死了,我的Java也要开始一点
本文章代码来源于Java-sec-code项目

path_traversal

首先我们在org/joychou/controller/PathTraversal.java路径下面,首先最上方有一个大大的@RestController

@RestController

这是在Spring4之后新加入的注解,原来返回json需要@ResponseBody@Controller配合。

@RestController@ResponseBody@Controller的组合注解。

@RestController
public class HelloController {

    @RequestMapping(value="/hello",method= RequestMethod.GET)
    public String sayHello(){
        return "hello";
    }
}

等价于

@Controller
@ResponseBody
public class HelloController {

    @RequestMapping(value="/hello",method= RequestMethod.GET)
    public String sayHello(){
        return "hello";
    }
}

路径穿越

首先这里告诉我们利用方法,打过CTF的也知道是啥东西

filepath参数传入getImgBase64

这里验证其文件存在并且不是目录,之后通过文件流的形式读取并返回到网页

修复方法

这里给了我们一个修复的方法
我们来看看这个SecurityUtil.pathFilter(filepath)函数,
逻辑很简单,首先是判断有无%,有则执行url解码,之后常规的防止路径穿越的方式过滤../即可

本文标签: 路径SecJavapathtraversalCode