跳到主要内容
知仓学习社ZHICANG

crypto-toolkit

编码解码与加解密工具 — base64/URL/Hex/HTML实体编码解码,MD5/SHA哈希,AES/DES/RSA加解密,JWT解析,Caesar/ROT13密码,栅栏/Vigenere密码,Unicode转义,Morse电码等

不碰外部(只输出文字)无严重或高危命中Netw0rkNoob/VulnClaw

它会碰到什么

扫了多少4 个文本文件,9 KB
它会碰到什么不碰外部(只输出文字)
命中总数0 处
命中统计严重 0 · 高 0 · 中 0 · 低 0

这一栏是扫描器报的事实,不是结论。命中多不等于有毒(安全工具、规则库、示例脚本本来就会包含危险写法),命中少也不等于干净。它和你手上的凭据、文件、网络有什么关系,需要你自己看。

技能内容

编码解码与加解密 Skill

针对渗透测试中常见的编码、加密、混淆场景,提供全面的编解码和加解密能力。

重要:遇到任何编码/加密字符串时,优先使用 crypto_decode 工具进行解码,而非靠直觉猜测。

核心原则

  1. 工具优先 — 遇到 base64、hex、URL编码等字符串,调用 crypto_decode 工具解码,不要自行脑补
  2. 多格式尝试 — 如果一种解码方式结果不合理,尝试其他编码格式
  3. 链式解码 — CTF 中常见多层编码(如 base64→hex→ROT13),解码后检查结果是否还需再次解码
  4. 验证结果 — 解码后验证结果的合理性(是否为可读文本、是否像路径/URL/flag 等)

1. 编码识别与解码

常见编码特征识别

| 编码类型 | 特征 | 示例 |

|---------|------|------|

| Base64 | A-Za-z0-9+/= 结尾常有 = 填充 | TnNTY1RmLnBocA== |

| Base32 | A-Z2-7= | OBZHK5DFN2A==== |

| Hex | 0-9a-f 偶数长度 | 4e73536354662e706870 |

| URL编码 | %XX 格式 | %2F%61%64%6D%69%6E |

| HTML实体 | &#xNN;&#NNN; | <script> |

| Unicode转义 | \uXXXX\UXXXXXXXX | \u003c\u0073\u0063 |

| JWT | 三段 . 分隔的 base64 | eyJhbG... |

解码策略

  1. 识别编码类型 → 调用 crypto_decode 工具指定对应操作
  2. 检查解码结果是否可读/合理
  3. 不合理则尝试其他编码格式
  4. 如果结果仍像编码,重复步骤 1-3

2. 哈希与散列

常见哈希类型

| 类型 | 输出长度 | 特征 |

|------|---------|------|

| MD5 | 32 hex | e10adc3949ba59abbe56e057f20f883e |

| SHA1 | 40 hex | aaf4c61ddcc5e8a2dabede0f3b482cd9aea9434d |

| SHA256 | 64 hex | 2c26b46b68ffc68ff99b453c1d30413413422d7064... |

| SHA512 | 128 hex | 更长的hex字符串 |

| NTLM | 32 hex | Windows hash |

| MySQL5 | 41字符 | *E6CC90B878B948C35E92B003C792C46758BF4 |

哈希处理策略

  • 识别哈希类型(通过长度和字符集)
  • 尝试在线彩虹表查询(通过 fetch 工具访问 crackstation 等)
  • 对于已知盐值的哈希,尝试带盐值暴力破解

3. 对称加密

AES/DES/3DES

  • 需要密钥和模式(ECB/CBC/CTR 等)
  • CBC 模式需要 IV
  • 常见填充:PKCS7/ZeroPadding
  • 渗透中常遇到硬编码密钥,优先从源码中提取

4. 非对称加密

RSA

  • 从公钥/私钥文件中提取参数
  • 模数过小的 RSA 可分解
  • 已知私钥可直接解密

5. 古典密码

| 类型 | 特征 | 破解方法 |

|------|------|---------|

| Caesar/ROT13 | 字母位移 | 暴力25种位移 |

| Vigenere | 多表替换 | Kasiski/频率分析 |

| 栅栏密码 | 字符分组重组 | 尝试常见栏数 |

| 培根密码 | AB 五元组 | 查表 |

| Morse | .- 点划 | 查表 |

6. JWT 处理

  • 解码 Header + Payload(base64url)
  • 检查算法:none 算法绕过、RS256→HS256 算法混淆
  • 尝试弱密钥签名伪造
  • 检查 exp/nbf 等时间声明

工具使用

crypto_decode 工具

当遇到需要编码/解码/加密/解密的操作时,调用此工具:

crypto_decode(operation="base64_decode", input="TnNTY1RmLnBocA==")

支持的操作列表:

  • 编码: base64_encode, base32_encode, hex_encode, url_encode, html_encode, unicode_encode, rot13_encode, morse_encode, caesar_encode, base58_encode
  • 解码: base64_decode, base32_decode, hex_decode, url_decode, html_decode, unicode_decode, rot13_decode, morse_decode, caesar_decode, base58_decode
  • 哈希: md5_hash, sha1_hash, sha256_hash, sha512_hash
  • 加密/解密: aes_encrypt, aes_decrypt, des_encrypt, des_decrypt, rsa_encrypt, rsa_decrypt
  • JWT: jwt_decode, jwt_encode
  • 自动识别: auto_decode (自动识别编码类型并解码)

CTF 密码学攻击路由

> 当遇到密码学攻击场景(已知加密算法,需要恢复明文或密钥)时,优先使用 ctf-crypto Skill:

| 攻击场景 | 路由到 ctf-crypto | 参考文档 |

|---------|-----------------|---------|

| RSA 小指数/共模/Wiener | ctf-crypto | references/rsa-attacks-cheatsheet.md |

| AES Padding Oracle/ECB 翻转 | ctf-crypto | references/aes-and-block-cipher-attacks.md |

| ECC 小子群/离散对数 | ctf-crypto | references/ecc-attacks-cheatsheet.md |

| PRNG/MT19937 预测 | ctf-crypto | references/prng-and-stream-cipher-attacks.md |

| 古典密码(Vigenere/XOR) | ctf-crypto | references/classic-cipher-attacks.md |

| 格攻击/LWE | ctf-crypto | references/lattice-and-lwe-attacks.md |

本 Skill 侧重编解码操作工具,密码学具体攻击方法和参数请参考 ctf-crypto

参考文档

  • references/encoding-cheatsheet.md — 编码识别速查表
  • references/crypto-attacks.md — 密码学攻击手法
  • references/crypto-attacks-roadmap.md — 密码学攻击分类路由(根据题目特征选择攻击方法)

想直接用这个技能?

本站把开放许可(MIT / Apache 等)的技能按仓库打包整理到网盘,点一下转存到你自己的网盘,不用一个个从 GitHub 拉。许可未声明的技能只给原始仓库链接,不打包。

它属于哪个仓库

星标★ 3,350
本站分层T1
该仓技能数50
原文件路径vulnclaw/skills/specialized/crypto-toolkit/SKILL.md

同一个仓库里的其他技能

看这个仓库的全部 50 个技能