java 强化漏洞+路径操纵

jq6vz3qz  于 2023-05-15  发布在  Java
关注(0)|答案(1)|浏览(312)

我得到的路径操纵问题,在强化分析工具.

private static final String ALLOWABLE_CHARS= "[\\\\/a-zA-Z0-9_\\-~:]+";
public static void generateZipFile(MultipartFile file) {
        File tempFile;
        try {
            String path = System.getProperty("java.io.tmpdir");
      
        // Reject any file path not containing any of the provided characters
        if (path.matches(ALLOWABLE_CHARS)) {
            tempFile = Files.createTempFile(Paths.get(path).normalize(), "prefix", "suffix").toFile();
            //Rest of the code
            .
            .
            .

}

工具中的漏洞详情:

攻击者可以将文件系统路径参数控制为get(),从而允许他们访问或修改受保护的文件。

getProperty(return) -> Assignment to path ->  get(0)
Paths.get(path) -> String path = System.getProperty("java.io.tmpdir")

在上面的代码中,我尝试了两种方法来消除漏洞。

1.我对路径使用了normalize方法
1.设置正则表达式中允许的字符并尝试使用该正则表达式验证路径。
这两种尝试都没有解决问题。有没有人想解决这个漏洞问题?

dojqjjoe

dojqjjoe1#

该问题在System.getProperty(“java.io.tmpdir”)行中报告
我没有在默认的系统tmp目录路径下创建临时目录,而是使用了下面的代码,它解决了fortify问题
路径路径= Files.createTempDirectory(“tmpdir”);

相关问题