路径穿越漏洞二三事

一、概念

路径穿越漏洞是指用户传入的路径中带有"…/"片段,而程序中未做处理,导致用户可以精心拼凑特殊路径,实现对任意目录的操作(上传文件等)。如果程序是以较低权限的用户身份运行,该漏洞危害尚且可控,但是如果程序是以root身份运行,就非常危险了。

二、如何复现

通常我们习惯于使用curl工具来测试接口,但是curl也存在一些局限,对于文件上传这类multipart/form-data类型的数据,无法构造原始文件名称这个字段(自动生成),因此无法复现。
可以使用Apache的HttpClient工具来构造含有非法路径的请求。

三、如何修复与避免

从请求中获取原始路径时不要直接使用,而是先解析出纯粹的文件名称,然后使用指定的路径进行存储,为了防止遍历猜解,还可以在生成路径中加入部分随机字符串,例如UUID,来进一步提高安全性。

你可能感兴趣的:(java,web安全,文件上传)