用途:在 Java 源码白盒审计中判断文件操作类漏洞是否成立,核心是验证路径可控性、文件名可控性与内容可控性;运行时构造绕过 payload、目录穿越利用链属于黑盒 exploit 范畴,不在本技能内。
主要能力:按 Sink 函数分类进入审计分支。文件上传针对 MultipartFile.transferTo()、Part.write(),检查 getOriginalFilename()、getSubmittedFileName() 是否净化,区分 ContentType 校验与扩展名白名单,判断存储路径是否 Web 可达。文件读取针对 FileInputStream、Files.readAllBytes()、new File(path)、ClassLoader.getResourceAsStream(),重点分析 ../ 路径穿越与 NIO 的 normalize()+startsWith() 安全模式、URL 编码绕过、classpath 与 file 协议差异。文件写入针对 FileOutputStream、Files.write()、FileWriter,追踪路径与内容双可控导致的 WebShell 落地、配置覆盖、日志注入写马、模板覆盖。归档提取针对 ZipInputStream.getNextEntry()、ZipFile.entries() 的 Zip Slip,检查条目名 ../ 与 Canonical Path 校验,并覆盖 Tar/Gzip。文件删除针对 File.delete()、Files.delete() 的路径穿越、TOCTOU 与符号链接跟随。
使用方式:依据资料中 5 类漏洞的危险模式与安全模式代码对比、EVID 证据示例(见 references/file-vuln-patterns.md),逐项审查文件类证据点,确认文件名净化方式、上传存储位置、类型校验方式、读取路径防护、写入来源、解压条目校验与删除路径风险,过滤不充分处给出绕过思路或标注待验证,严重度按统一公式评分以与 pipeline 一致。
适用场景:Java 项目白盒审计中涉及文件上传、下载、解压、导入导出、日志、模板、配置写入等功能模块。
限制:仅做源码层判定,不提供运行时利用;具体命令、安装方式、收费与价格资料未提供;工具调用格式与平台支持情况暂未提供。