java文件操作函数_修复一个iast扫描插件bug&&添加java/nio/file/Files文件操作函数hook点...
发布日期:2021-06-24 13:48:44 浏览次数:2 分类:技术文章

本文共 1028 字,大约阅读时间需要 3 分钟。

1.缩进是指else if那里?我改一下

2.软连接的文件webserver或者常规的读取确实都访问不到;但是代码里还是有方法去读取的,可以先拿到realpath 再去读取;

public static void main(String[] argv) throws IOException {

Path dirPath = Files.createTempDirectory("test-dir");

Path filePath = Files.createTempFile(dirPath, "test-file", ".txt");

System.out.println("Source path: " + filePath);

//must run as admin

Path symPath = Files.createSymbolicLink(dirPath.resolve("sym-test-file.txt"), filePath);

System.out.println("Symbolic link path: " + symPath);

Path path1 = Files.readSymbolicLink(symPath);

Path path = symPath.toRealPath();

Files.readAllBytes(path);

System.out.println("readSymbolicLink: " + path1);

System.out.println("readSymbolicLink: " + path);

}

这样会有一定风险,如果先把一个要读的文件 比如/etc/passwd 软链接到/tmp/xxx

然后通过传参path=/tmp/xxx ;代码里Files.readSymbolicLink(symPath)或者toRealPath拿到真实路径;再去读取文件,最后http传参路径是/tmp/xxx,文件真实读取路径是/etc/passwd; 通过参数的漏洞检测是匹配不上的;只有靠黑名单;如果源路径不在黑名单,可能会产生检测绕过;

当然这个情况应该比较少;

这个我就不改了;要不要删看你们吧;就一行代码,你们觉得没必要就删掉好了

3.createDirectory放到跨目录? 应该也不合适吧,我理解创建目录也是属于写操作 就放到write里了

4.DELETE忘了拆 ,我拆一下

转载地址:https://blog.csdn.net/weixin_33245447/article/details/114669008 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:java学生管理系统编号_java学生信息管理系统(附源码)
下一篇:java如何实现链接_如何在java中实现方法链接?

发表评论

最新留言

做的很好,不错不错
[***.243.131.199]2024年04月08日 18时41分28秒