加入收藏 | 设为首页 | 会员中心 | 我要投稿 银川站长网 (https://www.0951zz.com/)- 云通信、基础存储、云上网络、机器学习、视觉智能!
当前位置: 首页 > 服务器 > 安全 > 正文

深入解析目录遍历漏洞探讨其在 Java 代码审计中的应用

发布时间:2023-09-28 11:30:45 所属栏目:安全 来源:
导读:通过用户输入,后端接收到参数直接拼接到指定路径下读取用户的文件名,看似正常,但是用户输入的参数不可控制,黑客将非法的特殊字符作为文件名的一部分,操作到其他路径下,甚至是跳转到服务器敏感目录,读取敏感的

通过用户输入,后端接收到参数直接拼接到指定路径下读取用户的文件名,看似正常,但是用户输入的参数不可控制,黑客将非法的特殊字符作为文件名的一部分,操作到其他路径下,甚至是跳转到服务器敏感目录,读取敏感的配置文件,例如服务器的密码文件,程序数据库,redis等核心配置文件,因此具有一定的风险;

人工代码审计

关键字

1 )new FileInputStream( path

2 )new FileOutputStream( path

3 )new File( path

4 )RandomAccessFile fp = new RandomAccessFile(fname,"r");

5)mkdirs

6 )getOriginalFilename

7 )entry.getName(

...

类和函数

1)sun.nio.ch.FileChannelImpl

2)java.io.File.list/listFiles

3)java.io.FileInputStream

4)java.io.FileOutputStream

5)java.io.FileSystem/Win32FileSystem/WinNTFileSystem/UnixFileSystem

6)sun.nio.fs.UnixFileSystemProvider/WindowsFileSystemProvider

7)java.io.RandomAccessFile

8)sun.nio.fs.CopyFile

9)sun.nio.fs.UnixChannelFactory

10)sun.nio.fs.WindowsChannelFactory

11)java.nio.channels.AsynchronousFileChannel

12)FileUtil/IOUtil

13)filePath/download/deleteFile/move/getFile

在使用这些函数,关键字,类时,对用户传递来的文件对象/文件名/文件路径,是否进行了正确的处理:

是否限制了可操作文件的路径,文件类型,文件所有者;

是否将敏感文件进行了排除

查找getPath(),getAbsolutePath(),查看是否有错误的路径判断;

在排查程序的安全策略配置文件,全局搜索permission,Java.io.FilePermission,grant的字样,是否给程序的某部分路径赋予了读写权限;

问题代码示例

1)文件获取响应文件路径或者创建响应的目录时,对读入的文件路径没有进行过滤与限制,用户可控;

//创建读取 要拷贝的文件

InputStream inStream = new FileInputStream(file1);

//创建 要复制到的文件,filename未经校验

OutputStream inStream = new FileOutputStream(new File(file2+"\\"+filename));

2)直接获取文件名称,未进行校验,创建文件;

String orgName = mf.getOriginalFilename();//获取文件名 然后

File file = new File(orgName);

file.mkdirs();//创建文件根目录

3)路径操作,压缩项覆盖,应用接收恶意zip压缩包,会造成受保护的文件或目录被覆盖等危险;

//开始解压

Enumeration entries = zipFile.entries();

//遍历entries 获得entry

while(entries.hasMoreElements()){

ZipEntry entry = (ZipEntry)entries.nextElement();

...

File targetFile = new File(entry.getName());

...

targetFile.getParentFile().mkdirs();

}

(编辑:银川站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章