用途:审计 Java Web 项目源码,识别所有文件读取操作实现,检测任意文件读取与路径遍历漏洞,并审计文件路径参数的校验逻辑。
主要能力:识别 BufferedReader、Scanner、Files.lines、Files.readAllLines、Files.readAllBytes、FileInputStream 等文件读取方法;检测路径拼接模式(如 basePath + fileName、File.separator 拼接、Paths.get 拼接);追踪 HTTP 参数到文件读取点的数据流;按 CVSS 3.1 对漏洞分级,编号格式为 {C/H/M/L}-FILE-{序号};对源码不可用的类使用 CFR 反编译器反编译。
使用方式:本技能应在 java-route-mapper 之后执行,基于其输出的路由与参数信息审计。若 route_mapper 输出不存在,需先运行 Skill(skill="java-route-mapper", args="--project {project_path}")。审计分三阶段:快速扫描文件读取方法与下载接口、参数-文件路径映射检查、深入检查与报告生成。参数经多层传递或校验逻辑复杂时,调用 Skill(skill="java-route-tracer", args="--route {route}") 追踪调用链。反编译示例:java -jar {CFR_JAR} /path/to/FileController.class --outputdir {output_path}/decompiled。报告输出至 {project_name}_audit/file_read_audit/ 目录,文件名格式为 {project_name}file_read_audit{YYYYMMDD_HHMMSS}.md,须按 OUTPUT_TEMPLATE.md 模板生成。
适用场景:Java Web 源码安全审计、任意文件读取与路径遍历漏洞排查、文件下载/读取接口的参数校验审计。
限制:需先有 java-route-mapper 的路由输出;发现文件读取代码后必须检查路径校验与代码可达性,避免误报,并标注可利用性状态(待验证、已确认可利用、不可利用、环境依赖);具体安装命令、收费与价格信息暂未提供。