Auth Access Control logo

Auth Access Control

Community
zhaji2333
auth-access-control

当出现注册/登录/找回密码/验证码/绑定手机/实名认证/OAuth/SSO/2FA/JWT等认证功能,前后端分离应用出现路由守卫/前端鉴权绕过,或发现ID可替换、角色参数可控、租户ID可控、接口存在越权迹象时调用。负责认证绕过、前端鉴权绕过、会话安全、验证码安全、水平/垂直越权、多租户隔离、密码重置、加密与随机性弱点分析。

Overview

Publisherzhaji2333
RepositoryCkSKILLS
Skill nameauth-access-control
Stars
123
Forks
16
Bundled files
Instructions only
LicenseMIT
Links
  • Markdown instructions

    A SKILL.md file the model loads on demand, so it only costs tokens when a request actually matches.

  • Works with any LLM

    AI skills are plain Markdown, not provider-specific code, so this works with GPT, Claude, Gemini, Grok, or a local model.

  • Self-contained

    Everything the model needs lives in the instructions — no extra files to sync.

  • Open source

    Published by zhaji2333 on GitHub. Read the source before you install it.

Installation

Install the Auth Access Control AI skill in TypingMind to use it with any LLM, or drop it into another agent that reads SKILL.md.

1

Install in TypingMind

TypingMind installs a skill straight from its GitHub folder — it reads SKILL.md, bundles the resource files, and stores the result locally.

  1. Open the app and go to Plugins → Skills.
  2. Choose "Install from GitHub".
  3. Paste the skill folder URL below and confirm.
    https://github.com/zhaji2333/CkSKILLS/tree/main/.agents/skills/auth-access-control
  4. Enable the skill in any chat where you want it available.
Plugins → Skills → Add skill → From GitHub URL, then paste the folder URL and press Continue.
2

Install in another agent

Any agent that reads the Agent Skills format can use this skill — copy the folder into that agent's skills directory.

Claude Code — .claude/skills
git clone --depth 1 https://github.com/zhaji2333/CkSKILLS.git /tmp/CkSKILLS
mkdir -p .claude/skills
cp -r /tmp/CkSKILLS/.agents/skills/auth-access-control .claude/skills/auth-access-control
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Auth Access Control in any TypingMind chat and the model takes it from there. Its name and description sit in the system prompt, and the moment a request matches, the model loads the full instructions itself — you never invoke it by hand, and it costs no tokens until it is actually used.

The model loads Auth Access Control on its own as soon as a request matches it.

Works with any AI model

AI skills are plain Markdown instructions rather than provider-specific code, so Auth Access Control is not tied to the model it was written for. Install it once in TypingMind and use it with GPT-5, Claude, Gemini, Grok, DeepSeek, Mistral, Llama, or a local model you run yourself — all on your own API keys.

  • Loaded only when it is needed

    The system prompt carries just the name and description. The instructions are fetched on the first matching request, so an idle skill costs nothing.

  • Switch models mid-chat

    Because the skill is instructions rather than code, changing model does not break it — the next model reads the same SKILL.md.

Skill instructions

This is the SKILL.md content the model loads. Read it before installing — a skill is instructions your model will follow.

auth-access-control — 认证授权与越权专项深度挖掘

何时调用(触发条件)

  • 注册/登录/找回密码/绑定换绑/实名认证/第三方登录/SSO/2FA 功能
  • JWT/Token/Session 机制存在或可疑
  • 发现对象ID可控(订单、用户、地址、收藏)
  • 发现 role/admin/tenant_id 等参数可控
  • 同一接口不同角色返回差异
  • 加密/签名参数需要逆向分析(自研加密、弱哈希、可预测随机数;公网可取的 RSA/AES/uuid 当鉴权 → unauth-path-key-hunt)
  • 前后端分离应用的路由守卫/前端鉴权(Vue/React 路由守卫、localStorage 登录态、前端 role 字段)

一、身份认证与会话安全

类型场景挖掘要点
A1. 弱口令/默认口令管理后台、运维面板、测试账号残留字典策略、验证码绕过、MFA检查
A2. 认证绕过客户端校验、异常路径放行不同header/cookie/参数组合对比
A3. 会话固定/劫持登录前后session不变Secure/HttpOnly/SameSite检查
A4. JWT/Token风险弱密钥、alg混淆、过期不校验token校验逻辑、重放测试

二、前端鉴权绕过 / 路由守卫绕过

适用场景:Vue / React / Angular 等前后端分离应用,前端通过 router.beforeEach、AuthGuard、本地 role 字段、localStorage/sessionStorage 中的登录态控制页面访问;服务端接口未做二次校验或校验可被绕过。

2.1 常见前端鉴权模式与绕过点

模式绕过思路验证方法
前端路由守卫(Vue Router / React Router)直接请求后端 API 或构造 URL 访问目标页,绕过守卫拦截 /login 后的跳转,直接访问 /admin#/dashboard
localStorage/sessionStorage 存储登录态修改/伪造 token、role、isAdmin 等字段控制台 localStorage.setItem('role','admin') 后刷新
前端 role/admin 字段控制菜单/按钮接口返回 role 字段,前端仅隐藏入口;直接调用后端管理接口抓包改 role,观察后端是否真正校验
JS 源码中硬编码角色/权限source map/解包后搜索 admin、role、permissionwebpack/source map 还原、Chrome Sources 定位
路由异常路径 / Hash 模式差异未定义路由、404、错误分支被放行;Hash 模式 #/admin 绕过服务端路径限制对比 /admin 与 /#/admin;构造 #/admin/不存在路径 观察是否放行

2.2 挖掘步骤

  1. 识别前端框架:查看 JS bundle、路由库(vue-router、react-router-dom)、构建产物(webpack、vite、umi)。
  2. 提取路由表:从 router.js、JS map、反编译产物中提取所有路由路径,特别是 /admin、/manage、/console、/system 等管理路由(JS/source map 还原详见 recon-js-analysis)。
  3. 分析路由守卫逻辑:定位 beforeEach、onEnter、AuthGuard、PrivateRoute,确认校验依赖的是前端存储还是后端接口。
  4. 绕过验证:按 2.1 表格验证方法逐项执行;另测删除/篡改路由守卫 JS(Chrome Overrides、Burp 替换响应体)。
  5. 后端接口二次校验:即使绕过前端页面,也要测试对应 API 是否真正鉴权;前端绕过 ≠ 后端未授权,后者才是有效漏洞。

三、验证码安全专项

适用场景:注册/登录/找回密码/绑定手机/敏感操作(改密/转账/提现)前的图片、短信、邮件、滑动/点选、行为验证码。

3.1 类型特有攻击面

类型特有攻击点
图片验证码OCR 识别、干扰弱、时效长
短信/邮件验证码轰炸(对他人手机号/邮箱无限发)、4-6 位短码可爆破、与接收渠道未绑定
滑动/点选验证码轨迹伪造、拦截校验接口伪造 success=true / riskLevel=0
行为验证码(无感)设备指纹伪造、风控阈值宽松

3.2 通用绕过手法(所有类型先过一遍)

  1. 置空/删除参数:删掉 captcha/code 字段或传空字符串
  2. 复用:同一验证码连续多次提交
  3. 不刷新:失败后用原验证码继续爆破
  4. 响应回显:验证码/结果在 JSON、Set-Cookie、响应头中返回
  5. 万能码:000000 / 123456 / 888888 / 666666
  6. 并发:同时多发请求利用校验竞态
  7. 渠道未绑定:A 手机收码,B 手机提交同一验证码
  8. 可预测:短码 + 弱随机数(时间戳/递增/固定种子)
  9. 仅前端校验:JS 校验格式,服务端不校验
  10. 跳步:直接请求下一步接口绕过验证码环节
  11. 敏感操作确认:改密/转账前的验证码是否必需且服务端真正生效

3.3 修复建议

  • 服务端生成 + 服务端校验,一次有效,用后即失效
  • 验证码与接收渠道绑定(手机号/邮箱/图片 session)
  • 短信码 ≥6 位 + 失败锁定 + 单号日发送上限;图片码加干扰/扭曲/时效
  • 敏感操作验证码作为独立服务端校验步骤,不依赖前端

四、JWT/Token 专项

  • 弱密钥爆破(jwt_tool / hashcat)
  • alg 混淆:RS256→HS256,用公钥当私钥签名
  • 过期 token 是否仍可用、注销是否失效
  • 重放测试:同 token 多端使用、跨环境使用
  • 签名算法是否强制校验(none 算法)

五、访问控制与越权

类型场景挖掘要点
B1. 水平越权(IDOR)/order?id=xxx同角色不同用户资源ID替换
B2. 垂直越权管理接口未鉴权对比管理员/用户接口差异
B3. 多租户隔离失败tenantId可控更换租户标识跨租户访问

权限验证三问(每次越权测试必答)

  • 我是谁(认证)→ 身份是否可伪造
  • 我能干什么(授权)→ 角色是否可篡改
  • 我能操作哪个对象(对象级校验)→ 资源 ID 是否可替换

六、用户认证类场景表(全景)

场景漏洞类型挖掘要点
用户注册批量注册/手机号遍历/邮箱轰炸无验证码、验证码可绕过、无频率限制
用户登录暴力破解/凭证泄露/登录绕过无锁定机制、错误信息泄露用户存在性
密码找回任意用户密码重置token可预测、验证码回显、用户凭证可控
短信/邮件验证码验证码绕过/轰炸/回显见「三、验证码安全专项」
手机号绑定/换绑任意绑定/覆盖绑定旧手机验证可绕过、直接绑定无验证
实名认证绕过/伪造/信息泄露前端校验、接口未验证、返回他人信息
OAuth/第三方登录账号劫持/绑定覆盖redirect_uri校验不严、state可预测
SSO单点登录票据伪造/会话固定ticket可重放、跨域token泄露
双因素认证(2FA)绕过/降级攻击备用验证弱、可直接跳过2FA步骤

七、权限控制类场景表(全景)

场景漏洞类型挖掘要点
订单/交易详情水平越权(IDOR)订单号遍历、无归属校验
个人信息/地址管理越权查看/修改/删除ID可控、无用户绑定校验
后台管理接口垂直越权/未授权访问普通用户直接调用管理接口
角色/权限管理越权提权role参数可控、权限ID可猜测
多租户系统租户隔离失败tenant_id可控、跨租户访问
数据导出/报表越权导出他人数据导出范围可控、无权限过滤
批量操作接口批量越权ids参数含他人资源ID
审批/工作流越权审批/跳过流程直接修改审批状态、绕过前置节点

八、加密与随机性弱点(M类)

  • 自研加密算法:逆向分析密钥、固定IV、可逆算法
  • 弱哈希:MD5/SHA1 无盐、可预测随机数生成 token/验证码
  • token/验证码可预测性:时间戳、递增序列、固定种子
  • 加密参数篡改:修改密文中的用户ID/金额字段是否生效
  • 取钥接口公网可打、加密只保护查询字不证明身份 → unauth-path-key-hunt

九、挖掘步骤

  1. 收集凭证流转:注册→登录→找回密码→绑定→解绑,记录每个步骤的凭证传递
  2. 对比测试:A用户 token 访问 B用户资源;无 token/过期 token/伪 token 访问
  3. 角色篡改:注册时或请求中注入 role=admin / isAdmin=true / group_id
  4. 对象绑定:遍历资源 ID(订单号、用户ID、uuid),观察归属校验
  5. 租户切换:修改 tenant_id/org_id,验证跨租户访问
  6. 验证码专项:按「三、验证码安全专项」3.2 十一条手法逐项测试
  7. 密码重置链:验证码绕过 → token 预测 → 任意用户重置 → 登录目标账号
  8. OAuth/SSO:redirect_uri 白名单绕过、state 缺失/可预测、绑定覆盖

十、验证要点

  • 响应差异:状态码、响应体字段、错误措辞(用户存在性枚举)
  • 越权判定:能读到/改到他人数据即确认,无需深入
  • 多用户矩阵:A↔B 双向测试,同角色/跨角色/跨租户
  • 报告需标注:前置条件(登录态/角色/网络位置)、影响对象数量

十一、修复建议

  • 服务端统一鉴权:每个接口强制校验身份与资源归属
  • 对象ID不可预测(UUID)+ 归属校验(owner_id 比对)
  • 验证码:见「三、验证码安全专项」3.3
  • JWT:强密钥、强制算法白名单、短时效+撤销机制
  • 密码重置 token:高熵随机、一次性、绑定会话
  • 敏感操作(改密/绑手机/资金)增加二次验证

Frequently asked questions

What does the Auth Access Control AI skill do?

当出现注册/登录/找回密码/验证码/绑定手机/实名认证/OAuth/SSO/2FA/JWT等认证功能,前后端分离应用出现路由守卫/前端鉴权绕过,或发现ID可替换、角色参数可控、租户ID可控、接口存在越权迹象时调用。负责认证绕过、前端鉴权绕过、会话安全、验证码安全、水平/垂直越权、多租户隔离、密码重置、加密与随机性弱点分析。

Why use Auth Access Control on TypingMind?

Because you install it once and use it with any model. Auth Access Control is plain Markdown rather than provider-specific code, so the same skill runs on GPT-5, Claude, Gemini, Grok, or a local model — and you can switch model mid-chat without it breaking. TypingMind runs on your own API keys, so you pay providers directly instead of a per-seat subscription, and your skills and chats stay in your own storage.

How do I install Auth Access Control in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/zhaji2333/CkSKILLS/tree/main/.agents/skills/auth-access-control. TypingMind reads its SKILL.md and installs it as a skill you can enable per chat.

Which AI models can use Auth Access Control?

Any model you connect in TypingMind. AI skills are plain Markdown instructions rather than provider-specific code, so GPT, Claude, Gemini, Grok, and local models can all load this skill when a request matches it.

How many AI models can I use with Auth Access Control?

As many as you like. As long as a model supports skills, you can use Auth Access Control with it — GPT, Claude, Gemini, Grok, DeepSeek, Mistral, Llama and more — all on TypingMind with your own API keys.

Is the Auth Access Control AI skill free?

Yes. It is published on GitHub by zhaji2333 under the MIT license. You only pay your own AI provider for the tokens you use.

What are AI skills?

An AI skill is a reusable instruction bundle that teaches an AI model how to do one specific task. It follows the open Agent Skills format: a SKILL.md file with a name and description, plus any scripts, templates or reference files the model may need. The model reads the instructions only when your request matches the skill, so an installed skill costs nothing until it is used.

How are AI skills different from plugins or MCP servers?

A plugin or MCP server gives a model new tools to call — code that runs somewhere and returns a result. An AI skill gives the model knowledge and process instead: how to approach a task, which steps to follow, what good output looks like. Skills are plain Markdown, so they need no server, no API key and no runtime, and they work with any model.

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇