🔑 弱密钥爆破

Weak Secret Brute Force

📖 漏洞原理

如果 JWT 使用弱密钥(如 "secret"、"password"),攻击者可以:

  1. 获取一个有效的 JWT
  2. 使用常见密钥字典进行爆破
  3. 找到正确的密钥后,可以伪造任意 Token

常见弱密钥:secret, password, 123456, admin, key, jwt, token...

🧪 攻击演示

Step 1: 获取目标 Token

等待获取...

Step 2: 字典爆破

使用常见密钥字典尝试爆破:

加载中...

Step 3: 伪造管理员 Token

使用爆破出的密钥伪造管理员身份:

🔬 爆破原理

// 爆破逻辑
const wordlist = ['secret', 'password', '123456', ...]

for (const secret of wordlist) {
  const expectedSig = HMAC_SHA256(header + '.' + payload, secret)
  
  if (expectedSig === token.signature) {
    console.log('密钥找到:', secret)
    break
  }
}

🛡️ 防御方法

// 生成强密钥
const crypto = require('crypto')
const secret = crypto.randomBytes(32).toString('hex')
// 例如: 'a3f2b8c9d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0c1d2e3f4a5b6c7d8e9f0a1'