龙空技术网

安全技术研究-任意文件上传攻击(JAVA代码)

血超级厚的土豆 105

前言:

如今我们对“java上传限制”大体比较关心,我们都想要学习一些“java上传限制”的相关内容。那么小编同时在网络上收集了一些关于“java上传限制””的相关资讯,希望朋友们能喜欢,你们一起来学习一下吧!

漏洞代码示例

在下面的描述中,输入的文件名是用户控制的。用户可以指定的不同位置存储文件。逻辑上并没有检查用户上传的文件类型,所以它允许任何类型的文件上传到web服务器。

public class UploadAction extends ActionSupport {    private File uploadedFile;    // setter and getter for uploadedFile    public String execute() {        try {            File fileToCreate = new File(filepath + File.separator +filename);            // Copy temporary file content to this file            FileUtils.copyFile(uploadedFile, fileToCreate);            return "SUCCESS";        } catch (Throwable e) {            addActionError(e.getMessage());            return "ERROR";        }    }}

如何防护

限制上传的文件类型。

if (!validExtensions.contains(getFileExtension(fileName))) {    writer.println("Invalid Extension");    writer.close();    return;}private String getFileExtension(String fileName) {    String extension = "";    int i = fileName.lastIndexOf('.');    if (i > 0) {        extension = fileName.substring(i + 1);    }    return extension;}

确保用户不能通过类似通过java.io.File.getName()的方法操纵上传文件保存的路径。

检查上传文件的格式、内容和后缀,同时所有上传的文件都被反病毒解决方案扫描。

标签: #java上传限制 #java上传文件代码