使用说明(Markdown 格式)

  • 项目简介

    • 该仓库实现了一个 MCP 服务器,用于向接入的 MCP 客户端提供对 JWT 的多种操作能力,包括解码、编码、签名验证、破解以及攻击载荷生成等工具。服务器以 MCP 标准协议对外提供接口,默认通过标准输入输出(stdio)进行通讯,便于与常见的 MCP 客户端集成和模型对接。
  • 主要功能点

    • Decode 工具:解码 JWT,返回头部、有效载荷及使用的算法。
    • Encode 工具:将 JSON 数据编码成 JWT,支持对称签名(secret)或非对称私钥(PEM/DER),以及 NONE 签名选项;可附加自定义头信息并支持 DEFLATE 压缩。
    • Verify 工具:基于提供的密钥/密钥对,验证签名及可选的 Exp/nbf 等时间相关断言。
    • Crack 工具:字典攻击或暴力穷举方式尝试破解 JWT 的签名密钥。
    • Payload 工具:生成多种攻击载荷,围绕 jku/x5u、alg_confusion、kid 等场景构造示例载荷。
    • MCP 客户端集成:通过 stdio 传输与 MCP 客户端交互,客户端需要配置服务器启动命令和参数以建立连接。
  • 安装步骤

    • 直接构建运行即可(使用 Rust 工具链)
    • 构建后执行 otp:
      • cargo build --release
      • 生成的二进制文件将具备 mcp 模式入口,直接以 mcp 参数启动。
  • 服务器配置(MCP 客户端配置示例说明) 注:MCP 客户端需要至少知道服务器的启动命令及参数,以建立与 MCP 服务器的连接。以下描述为配置说明,非代码片段。

    { "server_name": "jwt-hack", "command": "jwt-hack", "args": ["mcp"], "transport": "stdio", "tools": [ { "name": "decode", "description": "Decode a JWT token and display header, payload, and algorithm" }, { "name": "encode", "description": "Encode JSON into JWT with signing options (secret/private key) or NONE" }, { "name": "verify", "description": "Verify a JWT's signature and optional time-based claims" }, { "name": "crack", "description": "Crack a JWT secret using dictionary or brute-force" }, { "name": "payload", "description": "Generate attack payloads for security testing" } ], "notes": [ "MCP 服务器通过标准 JSON-RPC 形式处理请求与返回结果", "默认传输渠道为 stdio,方便与 IDE、模型工作流等集成", "无额外前置服务依赖,尽量确保执行环境具备 Rust 编译与运行能力" ] }

  • 基本使用方法

    • 启动 MCP 服务器:直接执行 jwt-hack mcp(在编译产物中,以 main 模块入口进入 MCP 模式)。
    • 客户端调用:通过 MCP 客户端向服务器发送带有要执行工具名称与参数的 JSON-RPC 请求,服务器返回结构化的 JSON-RPC 响应或错误信息。
    • 常见用例:传递 token、claims、密钥信息等,获取解码结果、签名结果、或对载荷进行攻击载荷生成等。
  • 运行与测试

    • 服务器实现包含对 MCP 协议的核心工具实现以及相关测试用例,确保 decode、encode、verify、crack、payload 工具均可使用。
    • 支持本地开发环境中快速验证 MCP 服务端行为。
  • 额外说明

    • MCP 服务器端实现结合项目内的 JWT 处理逻辑,使用 jsonwebtoken、Deflate 压缩等功能,确保在无网络的本地 MCP 场景中也能进行模型上下文相关的 JWT 操作。
    • 客户端通过配置可以灵活选择工具、传输方式与参数结构,以实现对 JWT 的安全测试、对接自动化工作流等场景。

信息

分类

AI与计算