[Java-sec-code学习]path_traversal路径穿越
Posted Y4tacker
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[Java-sec-code学习]path_traversal路径穿越相关的知识,希望对你有一定的参考价值。
前言
期末考试周了,学了一天密码学,累死了,我的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解码,之后常规的防止路径穿越的方式过滤..
与/
即可
以上是关于[Java-sec-code学习]path_traversal路径穿越的主要内容,如果未能解决你的问题,请参考以下文章
[Java-sec-code]PathTraversal学习
[Java-sec-code]PathTraversal学习