Token导航 LogoToken导航

Agent Skill · 研究检索

java-auth-audit(Java auth 审核)

用于辅助 Java 项目开发、面向对象设计、Spring 生态、Maven 或 Gradle 依赖和后端工程实践。它适合让 Agent 分析类结构、设计接口、整理服务分层、生成测试或检查常见代码坏味道。使用时需要结合项目已有架构、包结构和依赖版本,不应只按通用教程改代码;涉及数据库、事务、并发或框架配置时,应先确认运行环境和回归测试范围。

java-auth-audit 是研究检索类 Agent Skill,可用宿主为 Codex、Claude、Cursor、Gemini CLI,通过GitHub 仓库获取,权限为接触敏感数据;许可证信息还不明确,第三方扫描有未通过项,按安装量在研究检索类的 73,675 个 Skill 里排第 55,679。

总安装 470周安装 20GitHub Stars 632下载 165核验 2026-05-01

安装说明

本站只整理中文说明,不托管安装包,也不代用户安装。
GitHub
许可证
unknown

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:java-auth-audit(Java auth 审核)
来源仓库:https://github.com/ruoji6/java-audit-skills
仓库路径:skills/java-auth-audit
安装命令:
npx skills add https://github.com/ruoji6/java-audit-skills --skill java-auth-audit
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 npx skills 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

skills.shnpx skills
npx skills add https://github.com/ruoji6/java-audit-skills --skill java-auth-audit

这个 Skill 是做什么的

研究检索类 Skill 主要解决「找资料、核对事实、把来源整理清楚」的问题,通常会让助手先检索再总结。

用于辅助 Java 项目开发、面向对象设计和 Spring 生态集成。适合分析类结构、设计接口、整理服务分层或生成测试代码。使用时需结合项目已有架构、包结构和依赖版本,避免仅按教程修改代码。涉及数据库、事务或并发配置时,应先确认运行环境和回归测试范围。

java-auth-audit 属于研究检索类 Skill,可作为该场景下的辅助能力补充。

来源仓库内路径:skills/java-auth-audit

上手步骤

4 步
  1. 1

    确认自己的宿主工具

    公开资料标注支持 Codex、Claude、Cursor、Gemini CLI;先确认自己用的是其中之一,再按对应工具的 Skills 目录放置。

  2. 2

    拿到安装命令

    可以直接复制的命令是 npx skills add https://github.com/ruoji6/java-audit-skills --skill java-auth-aud…;命令里的占位符换成自己的路径或密钥再执行。

  3. 3

    安装后重启宿主

    命令执行完要完全退出宿主工具再打开,让新装的 Skill 被重新扫描到,否则列表里可能看不到。

  4. 4

    按最小权限试用

    它需要接触敏感数据,先在测试目录或测试账号里跑,确认没问题再放到正式项目。

常见问题

6 条

java-auth-audit 怎么安装?

在终端执行 npx skills add https://github.com/ruoji6/java-audit-skills --skill java-auth-audit。装完完全退出宿主工具再打开,让它重新扫描本地 Skill。

java-auth-audit 支持哪些 AI 工具?

公开资料标注支持 Codex、Claude、Cursor、Gemini CLI。其他工具只要能读取本地 Skill 目录,一般也能手动放进去,但要自己确认触发方式是否一致。

java-auth-audit 需要什么权限?

权限级别是接触敏感数据。该 Skill 可能接触密钥、Token、环境变量或敏感配置,应进入高风险复核队列,默认不自动发布。

java-auth-audit 是免费的吗?

公开资料没有标注明确许可证,收费和商用限制都无法确认。正式使用前请到来源仓库核对授权说明。

java-auth-audit 用的人多吗?

公开数据是累计安装 470 次,近一周安装 20 次,下载 165 次,GitHub 632 星。这些数字来自第三方目录统计,只能当作热度参考,不代表质量或安全性。

java-auth-audit 安全吗?

第三方扫描有未通过项,风险较高。除非你确认过源码,否则不建议直接安装到常用环境。

值得选的地方和要先想清楚的地方

值得选的地方

  • 同时适配 4 种工具,换客户端不用重新找替代品。

先想清楚的地方

  • 需要接触敏感数据,装到常用环境前要先评估影响面。
  • 许可证没有明确标注,能不能商用、能不能再分发都不确定。
  • 第三方扫描存在提醒项或未通过项,需要人工逐条确认。
  • 第三方目录整理,版本更新和行为细节以来源仓库为准。

适不适合你

更适合

  • 已经在用 Codex,想直接扩展它能力的人。
  • 需要处理研究检索类任务、又不想每次都手写提示词的人。

不太适合

  • 环境里有大量密钥、凭证,不方便给第三方 Skill 读取的人。
  • 需要明确授权才能用到公司项目里的场景。
  • 需要厂商级技术支持和 SLA 的生产系统。

研究检索类 Skill 对比

6 个同类
Skill总安装GitHub 星权限许可证扫描
find-skills

寻找技能 · Codex、Claude

31,199,81316,486操作浏览器MIT有提醒
self-improving-agent

自我改进 Agent · OpenClaw

16,464,0023,396接触敏感数据MIT-0通过
soultrace

灵魂追踪 · Codex、Claude

7,588,94412需要联网未明确有提醒
self-improving

自我完善 · OpenClaw

6,829,2841,046需要联网MIT-0通过
microsoft-foundry

微软代工厂 · Codex、Claude

6,614,144764调用外部服务未明确有提醒
java-auth-audit

Java auth 审核 · 本页

470632接触敏感数据未明确未通过

按安装量取同分类前几名;数字来自第三方目录统计,只作热度参考,不代表质量结论。

SKILL.md 原文

Java 鉴权机制审计工具

扫描 Java Web 项目源码,识别鉴权机制实现,检测鉴权绕过漏洞和越权访问缺陷。


漏洞分级标准

详见 SEVERITY_RATING.md

  • 漏洞编号格式: {C/H/M/L}-AUTH-{序号}
  • 严重等级 = f(可达性 R, 影响范围 I, 利用复杂度 C)
  • Score = R × 0.40 + I × 0.35 + C × 0.25,映射 CVSS 3.1

检测范围边界

本技能检测范围仅包含以下类型:

  • 鉴权绕过漏洞(Bypass)
  • 越权访问缺陷(Privilege Escalation)
  • 会话管理缺陷(Session Fixation / Hijacking)
  • 已知组件漏洞(CVE)

以下不属于本技能检测范围(即使在通常意义上也属于"安全问题"):

  • ❌ 代码质量问题(命名不规范、逻辑冗余、性能问题等)
  • ❌ 通用安全漏洞(SQL 注入、XSS、CSRF 等,使用专项技能)
  • ❌ 架构设计建议(缺少限流、日志审计、加密强度等)
  • ❌ 业务逻辑合理性(接口是否应该公开等业务决策)

核心要求

此技能必须完整检查所有鉴权相关代码,不允许省略。

  • ✅ 识别所有鉴权入口点(Filter/Interceptor/注解)
  • ✅ 分析每个路由的鉴权状态
  • ✅ 检测所有潜在的鉴权绕过模式
  • ✅ 为每个漏洞点提供验证 PoC
  • ❌ 禁止省略任何鉴权配置
  • ❌ 禁止跳过反编译步骤

工作流程

1. 项目分析初始化

输入: 项目源码路径
      可选: 已知框架信息、关注的路径

初始化步骤:

  1. 识别项目类型(源码/编译后/混合)
  2. 识别鉴权框架(通过配置文件和特征类)
  3. 确定是否需要反编译

2. 鉴权框架识别

框架识别特征配置文件参考资料
Shiroshiro.ini, @RequiresAuthentication, SecurityUtilsshiro.ini, shiro-spring.xmlSHIRO.md
Spring Security@EnableWebSecurity, SecurityFilterChain, @PreAuthorizeSecurityConfig.javaSPRING_SECURITY.md
JWTio.jsonwebtoken, JwtParser, Bearer Token-JWT.md
Filterimplements Filter, doFilter()web.xmlFILTER_INTERCEPTOR.md
Interceptorimplements HandlerInterceptor, preHandle()WebMvcConfigFILTER_INTERCEPTOR.md
注解鉴权@RequiresRoles, @PreAuthorize, 自定义注解-ANNOTATION_AUTH.md

2.1 组件版本检测(CRITICAL)

必须检测鉴权相关组件的版本,识别已知漏洞。

详细漏洞版本参见 VERSION_VULNS.md

版本识别方法

方法 1: JAR 文件名识别

# 扫描 WEB-INF/lib 目录
ls WEB-INF/lib/ | grep -E "shiro|spring-security|jwt|pac4j"

# 常见命名格式
shiro-core-1.4.0.jar          → Shiro 1.4.0
spring-security-core-5.7.3.jar → Spring Security 5.7.3
jjwt-0.9.1.jar                → JJWT 0.9.1
pac4j-core-4.0.0.jar          → PAC4J 4.0.0

方法 2: pom.xml 解析

<dependency>
    <groupId>org.apache.shiro</groupId>
    <artifactId>shiro-spring</artifactId>
    <version>1.4.0</version>  <!-- 提取版本号 -->
</dependency>

方法 3: MANIFEST.MF 解析

# 解压 JAR 查看 MANIFEST.MF
unzip -p shiro-core-1.4.0.jar META-INF/MANIFEST.MF

# 关键字段
Implementation-Version: 1.4.0
Bundle-Version: 1.4.0

方法 4: JAR 内 pom.properties

# 查看 JAR 内的 Maven 属性文件
unzip -p shiro-core.jar META-INF/maven/org.apache.shiro/shiro-core/pom.properties

# 内容示例
version=1.4.0
groupId=org.apache.shiro
artifactId=shiro-core
高危组件版本速查
组件漏洞版本CVE风险备注
Shiro< 1.5.2CVE-2020-1957路径绕过需配合 Spring
Shiro< 1.5.3CVE-2020-11989鉴权绕过需配合 Spring
Shiro< 1.6.0CVE-2020-13933认证绕过-
Shiro< 1.7.1CVE-2020-17523认证绕过需 Spring 集成
Shiro< 1.8.0CVE-2021-41303路径绕过-
Shiro< 1.9.1CVE-2022-32532RegEx 绕过使用正则匹配时
Shiro< 1.11.0CVE-2023-22602路径绕过Spring Boot 2.6+
Spring Security< 5.7.5CVE-2022-31692授权绕过-
Spring Security< 5.4.11 / < 5.5.7 / < 5.6.4CVE-2022-22978RegEx 绕过换行符绕过
PAC4J< 4.0.0CVE-2021-44878认证绕过-
JJWT< 0.10.0-弱密钥风险-
版本检测输出格式
## 组件版本分析

### 检测到的鉴权组件

| 组件 | 当前版本 | 最新版本 | 风险状态 |
|------|----------|----------|----------|
| shiro-core | 1.4.0 | 1.13.0 | ❌ 存在已知漏洞 |
| spring-security-core | 5.7.3 | 6.2.0 | ⚠️ 必须升级 |
| jjwt | 0.11.2 | 0.12.3 | ✅ 安全 |

### 已知漏洞详情

=== [CVE-2020-11989] Shiro 路径绕过 ===
影响版本: < 1.5.3
当前版本: 1.4.0
风险等级: 高

漏洞描述:
- Spring 框架下 Shiro 路径匹配存在绕过
- 攻击者可通过特殊路径绕过鉴权

验证 PoC:
\```http
GET /admin/page%2f HTTP/1.1
Host: {{host}}
\```

修复建议:
- 升级 Shiro 到 1.5.3 或更高版本

3. 反编译阶段(CRITICAL)

当源码不可用时,必须使用 CFR 反编译器反编译鉴权相关类。

详细策略参见 DECOMPILE_STRATEGY.md

3.1 反编译工具调用
# 反编译单个鉴权类
java -jar {CFR_JAR} /path/to/AuthFilter.class --outputdir {output_path}/decompiled

# 反编译鉴权相关目录
find /path/to/WEB-INF/classes/com/example/security -name "*.class" | xargs java -jar {CFR_JAR} --outputdir {output_path}/decompiled

# 反编译多个指定文件
java -jar {CFR_JAR} /path/to/AuthFilter.class /path/to/SecurityConfig.class /path/to/PermissionInterceptor.class --outputdir {output_path}/decompiled
3.2 必须反编译的类
类型匹配模式目的
Filter*Filter.class, *AuthFilter.class提取 doFilter 鉴权逻辑
Interceptor*Interceptor.class提取 preHandle 权限校验
Shiro 配置ShiroConfig.class, *Realm.class提取 filterChainDefinitionMap
Spring Security*SecurityConfig*.class提取 authorizeRequests 配置
自定义注解*Permission*.class, *Auth*.class提取注解处理逻辑
权限工具类*PermissionUtil*.class, *SecurityUtil*.class提取权限校验方法
3.3 反编译结果分析要点
// 反编译后重点关注:
public class AuthFilter implements Filter {

    // 1. 白名单路径 - 可能过宽
    private static final String[] EXCLUDE_PATHS = {"/login", "/public"};

    // 2. 路径匹配逻辑 - 可能存在绕过
    private boolean isExcluded(String path) {
        return path.startsWith("/public");  // startsWith 可被绕过
    }

    // 3. 鉴权校验逻辑 - 可能存在缺陷
    if (session.getAttribute("user") == null) {
        // 仅检查是否登录,未检查角色
    }
}

4. 鉴权配置分析

4.1 Shiro 配置解析
# shiro.ini
[urls]
/login = anon
/logout = logout
/admin/** = authc, roles[admin]
/api/** = authc

提取内容:

  • 公开路径: /login
  • 需要认证: /api/**
  • 需要角色: /admin/** → admin
4.2 Spring Security 配置解析
http.authorizeHttpRequests(auth -> auth
    .requestMatchers("/public/**").permitAll()
    .requestMatchers("/admin/**").hasRole("ADMIN")
    .anyRequest().authenticated()
);

提取内容:

  • 公开路径: /public/**
  • 需要角色: /admin/** → ADMIN
  • 默认策略: 需要认证
4.3 Filter 配置解析
<!-- web.xml -->
<filter-mapping>
    <filter-name>AuthFilter</filter-name>
    <url-pattern>/api/*</url-pattern>
</filter-mapping>

分析要点:

  • Filter 覆盖范围
  • 未覆盖的路径(潜在风险)

5. 路由-鉴权映射

结合路由信息(可使用 java-route-mapper 技能),分析每个接口的鉴权状态:

状态含义风险
✅ 公开明确配置为公开访问无(需确认是否应该公开)
✅ 受保护有完整的鉴权保护无
⚠️ 仅认证只检查登录状态,无角色校验中(可能越权)
❌ 无鉴权未发现任何鉴权机制高
❓ 不确定鉴权逻辑复杂,需人工确认待定

6. 漏洞检测

详细检测模式参见 BYPASS_PATTERNS.md

6.1 鉴权绕过检测
6.1.1 URI获取方法差异绕过(CRITICAL)

这是最常见的鉴权绕过根因,必须优先检测!

详细原理参见 URI_PARSING_BYPASS.md

检测要点: 识别鉴权代码使用的 URI 获取方法

获取方法是否安全绕过风险
request.getRequestURI()❌ 不安全可被 ;、编码、../ 绕过
request.getRequestURL()❌ 不安全同上
request.getServletPath()✅ 相对安全已处理特殊字符
UrlPathHelper.getPathWithinApplication()✅ 推荐Spring 标准方法
HandlerMapping.BEST_MATCHING_PATTERN_ATTRIBUTE✅ 最安全强关联Controller路由

高危代码模式检测:

// ❌ 危险:直接使用 getRequestURI 做鉴权判断
String uri = request.getRequestURI();
if (uri.endsWith(".js") || uri.endsWith(".css")) {
    chain.doFilter(request, response); // 可被 /admin;.js 绕过
}

// ❌ 危险:使用 contains/endsWith 做白名单匹配
if (uri.contains("/public/") || uri.startsWith("/static/")) {
    return true; // 可被 /public/../admin 绕过
}

绕过原理:

请求: GET /api/admin;.js

鉴权Filter使用: request.getRequestURI() → 返回 /api/admin;.js → 匹配.js后缀 → 放行
路由匹配使用: request.getServletPath() → 返回 /api/admin → 路由到Controller

结果: 鉴权判断为静态资源放行,但实际路由到 /api/admin 接口
6.1.2 分号路径参数绕过(;.js 系列)
绕过模式Payload示例原理
分号+静态后缀/admin;.js, /admin;.css, /admin;.pngTomcat删除分号后内容,白名单匹配后缀
分号+路径穿越/public;/../admin分号截断+目录穿越组合
分号+URL编码/admin%3b.js编码后的分号
分号+参数/admin;bypass=true路径矩阵参数
前置分号/;/admin某些解析器的特殊处理

验证 PoC:

# 分号后缀绕过(最常见)
GET /center/api/users;.js HTTP/1.1
Host: {{host}}

# 分号+多种后缀
GET /center/api/users;.css HTTP/1.1
GET /center/api/users;.png HTTP/1.1
GET /center/api/users;.html HTTP/1.1

# 分号+URL编码组合
GET /center/api/users%3b.js HTTP/1.1
Host: {{host}}

# 分号+路径穿越
GET /public;/../admin/users HTTP/1.1
Host: {{host}}
6.1.3 路径规范化差异绕过
绕过模式检测方法风险
路径穿越/admin/../public, /public/../admin高
双斜杠//admin, /api//users高
点斜杠/./admin, /api/./users高
URL编码斜杠/admin%2fusers, %2fadmin高
双重编码/admin%252fusers高
大小写绕过/ADMIN vs /admin中
后缀绕过/admin.action 无鉴权但 /admin 有鉴权高
尾部斜杠/admin/ vs /admin中
参数污染?role=admin 覆盖用户角色高
空字节/admin%00.jpg高
6.1.4 数据流分析(CRITICAL - 避免误报)

发现可疑代码模式后,必须进行数据流分析,避免误报!

问题背景: 仅凭模式匹配(如发现 contains() 匹配)就报告漏洞是不够的。必须追踪变量的完整使用链,判断绕过是否真正有效。

数据流分析步骤:

步骤1: 识别可疑模式
  └── 发现 isIgnoreUrl() 使用 contains() 匹配

步骤2: 追踪变量使用链
  └── uri 变量在白名单匹配后如何使用?
      ├── 仅用于白名单判断 → 需继续分析后续逻辑
      └── 还用于权限检查 → 分析权限检查如何处理 uri

步骤3: 分析后续代码逻辑
  └── 例如 getActionPrefix(uri) 取最后一段
      → 路径穿越不影响最终权限判断
      → 绕过无效!

步骤4: 得出结论
  └── 白名单可被绕过,但权限检查仍有效
      → 降低风险等级或标注"需验证"

必须回答的问题:

问题分析要点
变量如何被后续使用?追踪 uri 在匹配后的所有使用点
绕过后执行什么逻辑?分析 if/else 各分支的完整代码
是否有二次校验?检查后续是否有其他安全检查
路径穿越是否影响最终结果?分析路径处理函数(如取最后一段)

示例:错误分析 vs 正确分析

// 被审计的代码
if (this.isIgnoreUrl(uri)) {
    chain.doFilter(request, response);  // 白名单放行
} else {
    if (privileges.contains(getActionPrefix(uri))) {  // 权限检查
        chain.doFilter(request, response);
    }
}

// getActionPrefix() 实现
public static String getActionPrefix(String uri) {
    String[] components = uri.split("/");
    return components[components.length - 1];  // 取最后一段!
}
分析方式结论正确性
❌ 模式匹配contains() 可被路径穿越绕过 → 报告高危漏洞错误
✅ 数据流分析路径穿越后 getActionPrefix() 仍取最后一段,权限检查不受影响 → 绕过无效正确
6.1.5 多层鉴权架构分析(CRITICAL)

必须识别完整的鉴权架构,分析绕过单层后是否还有其他层拦截!

典型多层鉴权架构:

请求 → Filter层 → Interceptor层 → Action层
         │              │              │
         │              │              └── 业务逻辑中的权限检查
         │              └── Session检查、权限校验
         └── 登录检查、白名单、CSRF防护

分析要点:

层级常见职责绕过影响
Filter层登录检查、白名单、CSRF绕过可能导致未授权访问
Interceptor层Session检查、细粒度权限绕过可能导致越权
Action层业务权限校验绕过可能导致数据泄露

必须区分的鉴权类型:

类型检查内容示例代码绕过后果
登录检查Session 是否有效session.getAttribute("user")!= null未授权访问
权限检查用户是否有特定权限privileges.contains(actionPrefix)越权访问
白名单检查路径是否在白名单isIgnoreUrl(uri)需看后续逻辑

关键判断:obj!= null 的语义

// 常见模式
Object obj = session.getAttribute("user");
if (obj != null) {
    // 已登录用户 → 执行权限检查
    if (isIgnoreUrl(uri)) {
        chain.doFilter(...);  // 白名单:跳过细粒度权限检查
    } else {
        checkPermission(uri);  // 权限检查
    }
} else {
    // 未登录用户 → 放行给后续组件(可能有Interceptor拦截)
    chain.doFilter(...);
}

分析要点:

  • obj!= null 表示"用户已登录"
  • 白名单绕过只影响"已登录用户的权限检查"
  • 未登录用户放行后,后续 Interceptor 可能会拦截

多层分析检查清单:

  • 识别所有鉴权层(Filter/Interceptor/Action)
  • 分析每层的职责(登录检查/权限检查/业务校验)
  • 判断绕过单层后是否有其他层拦截
  • 区分"绕过登录检查"和"绕过权限检查"
  • 分析 obj!= null 或类似条件的业务含义
6.2 越权访问检测
越权类型检测方法风险
水平越权接口使用用户可控 ID,无归属校验高
垂直越权普通用户可访问管理接口高
未授权访问接口完全无鉴权高
6.3 会话管理检测
问题检测方法风险
Session 固定登录前后 Session ID 不变中
会话超时过长Session timeout > 30min低
Cookie 不安全缺少 HttpOnly/Secure 标志中

7. 报告生成(CRITICAL - 必须生成三个文件)

必须生成以下三个文件,缺一不可:

{project_name}_audit/auth_audit/
├── {project_name}_auth_audit_{timestamp}.md      # 主报告(漏洞分析)
├── {project_name}_auth_mapping_{timestamp}.md    # 路由-鉴权映射表
└── {project_name}_auth_README_{timestamp}.md     # 审计说明文档
7.1 三个文件的职责划分(避免内容重复)
文件核心职责包含内容不应包含
主报告漏洞分析漏洞详情、数据流分析、PoC、修复措施完整路由列表
映射表路由清单所有路由的鉴权状态表格漏洞详细分析
说明文档审计元信息方法论、工具、局限性、验证指南具体漏洞内容
7.2 报告生成子步骤(必须按顺序执行)
步骤 7.1: 生成主报告
  └── 创建 {project_name}_auth_audit_{timestamp}.md
      ├── 鉴权框架识别
      ├── 鉴权架构概览
      ├── 风险统计
      ├── 高危/中危/低危风险详情
      └── 修复建议总结

步骤 7.2: 生成映射表
  └── 创建 {project_name}_auth_mapping_{timestamp}.md
      ├── 按模块分组的路由表格
      ├── 鉴权状态说明
      └── 风险统计汇总

步骤 7.3: 生成审计说明文档
  └── 创建 {project_name}_auth_README_{timestamp}.md
      ├── 审计概述(目标、范围、时间)
      ├── 审计方法和工具
      ├── 审计局限性
      ├── 验证方法说明
      └── 下一步建议

步骤 7.4: 验证报告完整性(CRITICAL)
  └── 检查三个文件是否都存在
      ├── [ ] 主报告文件存在
      ├── [ ] 映射表文件存在
      └── [ ] 说明文档文件存在
7.3 文件完整性验证命令
# 验证三个文件都已生成
ls -la {project_name}_audit/auth_audit/

# 预期输出应包含:
# {project_name}_auth_audit_{timestamp}.md
# {project_name}_auth_mapping_{timestamp}.md
# {project_name}_auth_README_{timestamp}.md

如果任何文件缺失,必须立即补充!


输出格式

必须生成 3 个文件,严格按照 references/ 目录中的填充式模板生成。

文件模板命名格式职责
主报告OUTPUT_TEMPLATE_MAIN.md{project_name}_auth_audit_{YYYYMMDD_HHMMSS}.md漏洞分析和修复建议
映射表OUTPUT_TEMPLATE_MAPPING.md{project_name}_auth_mapping_{YYYYMMDD_HHMMSS}.md完整路由-鉴权对应关系
说明文档OUTPUT_TEMPLATE_README.md{project_name}_auth_README_{YYYYMMDD_HHMMSS}.md审计方法论和局限性

关键规则:

  • 必须生成 3 个文件(不是 1 个也不是 2 个)
  • 主报告不包含完整路由列表(放映射表中)
  • 映射表不包含漏洞详细分析(放主报告中)
  • README 不包含具体漏洞内容
  • 三个文件间互相引用链接必须正确
  • 通用规范参考: java-shared/OUTPUT_STANDARD.md

验证检查清单

在标记审计完成前,必须执行以下检查:

架构分析检查

  • 识别完整的鉴权架构(Filter/Interceptor/Action 各层)
  • 分析每层的职责(登录检查/权限检查/业务校验)
  • 绘制鉴权架构图

代码分析检查

  • 所有 Filter/Interceptor 已分析
  • 所有鉴权配置已解析
  • 每个路由都有鉴权状态标注

漏洞检测检查

  • 所有绕过模式已检测
  • 对每个可疑模式执行了数据流分析
  • 区分了"已验证"和"待验证"漏洞
  • 分析了绕过后是否有其他层拦截

报告质量检查

  • 高危风险都有前置条件分析
  • 高危风险都有数据流分析
  • 高危风险都有实际影响说明
  • 高危风险都有验证 PoC(区分登录/未登录场景)

文件完整性检查(CRITICAL - 三文件验证)

  • 主报告文件已生成: {project_name}_audit/auth_audit/{project_name}_auth_audit_{timestamp}.md
  • 映射表文件已生成: {project_name}_audit/auth_audit/{project_name}_auth_mapping_{timestamp}.md
  • 说明文档已生成: {project_name}_audit/auth_audit/{project_name}_auth_README_{timestamp}.md
  • 三个文件内容不重复(职责划分正确)
  • 文件间相互引用链接正确

⚠️ 如果任何文件缺失,必须立即补充后再标记完成!


验证建议

PoC 验证时必须区分以下场景:

场景矩阵

场景Cookie状态测试目的
未登录访问无Cookie测试是否可完全绕过鉴权
过期Session访问带无效Cookie测试Session校验是否有效
普通用户访问带普通用户Cookie测试是否可越权到管理功能
管理员访问带管理员Cookie对照组,确认接口正常工作

验证步骤

步骤1: 获取有效 Cookie
  └── 登录普通用户账号,获取 JSESSIONID

步骤2: 未登录状态测试
  └── 不带任何 Cookie 发送绕过请求
      ├── 成功 → 严重漏洞:完全绕过鉴权
      └── 失败(302/401/403)→ 继续步骤3

步骤3: 已登录状态测试
  └── 带普通用户 Cookie 发送绕过请求
      ├── 成功访问管理功能 → 高危:越权访问
      └── 失败 → 绕过无效或仅影响特定场景

步骤4: 分析结果
  └── 根据测试结果调整漏洞等级和描述

PoC 模板

未登录测试模板:

GET /admin/cascade_/../admin/deleteUser.action HTTP/1.1
Host: {{host}}
# 注意:不带任何 Cookie

已登录测试模板:

GET /admin/cascade_/../admin/deleteUser.action HTTP/1.1
Host: {{host}}
Cookie: JSESSIONID={{valid_session}}
# 使用普通用户的 Session

结果判断标准

响应未登录状态含义已登录状态含义
200 + 业务数据❌ 严重:完全绕过❌ 高危:越权访问
200 + 空/错误可能部分绕过可能部分绕过
302 跳转登录鉴权有效不适用
401/403鉴权有效权限校验有效
500 错误需分析错误原因需分析错误原因

与 java-route-mapper 协作

java-route-mapper              java-auth-audit-opencode
     │                                   │
     │  提取所有 HTTP 路由                │  分析每个路由的鉴权状态
     │  生成 Burp Suite 模板             │  检测鉴权绕过漏洞
     │                                   │
     └─────────────┬─────────────────────┘
                   │
                   ▼
           完整的路由 + 鉴权审计报告

推荐流程:

  1. 先使用 java-route-mapper 提取所有路由
  2. 使用本技能分析每个路由的鉴权状态
  3. 合并生成完整的安全审计报告

故障排除

问题解决方案
无法识别鉴权框架检查 pom.xml 依赖,查找自定义 Filter
反编译失败检查 Java 版本,尝试单文件反编译
鉴权逻辑复杂标记为"需人工确认",提供代码位置
路由信息不完整先运行 java-route-mapper

参考资料

平台分布

Codex

35.26%
按下载量换算58

Claude

29.3%
按下载量换算48

Cursor

19.71%
按下载量换算33

Gemini CLI

9.63%
按下载量换算16

安全审计

Gen Agent Trust Hub

未通过

Socket

可疑

Snyk

可疑

权限和风险

接触敏感数据

该 Skill 可能接触密钥、Token、环境变量或敏感配置,应进入高风险复核队列,默认不自动发布。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。来源安全扫描存在提醒或未通过项,安装前请自行复核。目前只有一个公开来源,建议同时核对源仓库。

继续浏览同类 Skills