Weak Secret Brute Force
如果 JWT 使用弱密钥(如 "secret"、"password"),攻击者可以:
常见弱密钥:secret, password, 123456, admin, key, jwt, 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'