taibeihacker
Moderator
一点点至隐藏的jwt-payload-valuesa少数调整和想法来保护JWT有效载荷,这使得尝试通过不断改变其价值来解码是徒劳的,
确保解码的输出仍然难以理解,同时施加最低性能开销。什么是JWT令牌?JSON Web令牌(JWT,发音为“ Jot”)是两党之间传递JSON消息的紧凑型和URL安全的方式。它是在RFC 7519中定义的标准。令牌是一个长字符串,分为被点隔开的部分。每个部分均为基本64 URL编码。
令牌的哪些部分取决于JWT:的类型,无论是JWS(签名的令牌)还是JWE(加密令牌)。如果令牌已签名,它将有三个节:标题,有效载荷和签名。如果令牌加密,它将由五个部分:组成。标题,加密键,初始化向量,密文(有效负载)和身份验证标签。 JWT的最常见用例可能是将其用作Oauth和OpenID Connect Flow中的访问令牌和ID令牌,但它们也可以提供不同的目的。
此代码段的主要目标这本代码段提供了一个调整的透视图,目的是在解码JWT令牌时提高有效负载部分的安全性,该jwt代币(以纯文本可以看到存储的键。该代码段提供了一个调整的透视图,旨在在解码JWT令牌时增强有效载荷部分的安全性。通常,当从JWT令牌解码时,有效载荷部分以纯文本出现(base64)。主要目的是轻轻加密或混淆有效载荷值,从而难以辨别其含义。目的是确保即使有人试图解释有效载荷值,他们也不能轻易地这样做。
用户IDTHE代码代码片段以在有效载荷部分中存储的名为“用户ID”的密钥为示例。 “用户ID”的选择源于其在验证令牌的有效性后经常用于用户识别或身份验证目的(例如,确保其尚未过期)。试图掩盖名为“ UserId”的键的值的想法如下:
Encryption:将时间戳放大,然后通过使用用户ID执行位XOR操作进行加密。使用对称键执行XOR操作。然后使用base64编码所得的值。解密:Ectrypted数据使用base64解码。通过对称键通过XOR操作进行解密。原始的用户ID和Hashed时间戳以明文显示。用户ID部分是通过在“ |”上分配来提取的有关使用和目的的定界符。 XOR编码的对称密钥:变量材料可以用于此键。它可以是常规密码,任意随机字符串,生成的UUID或任何其他合适材料中使用的盐。但是,该密钥应牢固存储在数据库管理系统(DBMS)中。和. ^^
在示例中,键显示为{'userId':'rando_value'},
使其显然代表用户ID。
但是,这仅是出于说明目的。
实际上,通常使用预定的和未公开的名称。
例如,“ a':” consching_random_value'notesthis代码段是出于教育目的而创建的,并且是思想的起点,而不是固有的安全。它提供了超出明文可见性的安全性,但不能保证绝对安全。尝试使用此方法篡改JWT令牌需要访问JWT Secret Key和用于创建UserID的XOR对称密钥。
.如果您发现这有用,请"star":STAR2:支持进一步的改进。预览#python3 main.py
- 当前的UNIX TIMESTAMP: 1709160368
- 当前的Unix时间戳到人类可读: 2024-02-29 07:46:08
-USURID: 23243232
-xor symmetric key: b'generally_user_salt_or_hash_hash_or_random_uuid_this_value_value_must_be_in_dbms'
-JWT秘密key: yes_your_service_jwt_secret_key
- 编码的用户ID和TIMESTAMP: VVZCUUFTX14FOKDEUUFPEVZFTZFTWWWWWWWEKKLUXUKAWTHOKAAW1RXDGYWQAO=
- 解码的用户ID和Hashed Timestamp: 23243232 | E27436B7393EB6C2FB4D5E2A508A9C5C
-JWT Token: EYJHBGCIOIJIUZI1NIISINR5CCI6IKPXVCJ9.EYJ0AW1LC3RHBXAIOIIYMDI0LTAYLTAYLTAYLTAYLTAYLTAYLTAYLTAY3OJQ2OJA4IIIIIWIDXNLCMMMLCMMMLKIJOIVLZAY1VVRLRY mtrgt2tkrvvvrnbfvlpmvfd3s0vha0xvefvlyxd0se9rqufxmvjyredzvjyredzv1fbbz0ifq.bm_6cbzhdxhmzjyeeefr6yo5n5n5n5x51szxjybuezfibazfibaz7q
- 解码JWT: {'timestamp':'2024-02-29 07:463:08','userId':'vvzcuuftx14fokdeufokdeufokdeuufpevzftwwwwwwwwwwwwwwwwwwekegkluxukukukawththokaawthokaaw1rxdgygywqa=
#再次运行
- 解码JWT: {'TIMESTAMP':'2024-02-29 08:1633:36','userId':'vvzcuuftx14farnavbrpprpprpprprpprprprpprprprprprprprprprprprprprprprpprprprprpprrzlyxabzzlyxabzzabzzabzzabgewld10='
- Decoded JWT: {'timestamp': '2024-02-29 08:16:51', 'userid': 'VVZcUUFTX14FZxMRVUdnEgJZEmxfRztRVUBabAsRZkdVVlJWWztGQVA='}
- Decoded JWT: {'timestamp': '2024-02-29 08:17:01', 'userid': 'VVZcUUFTX14FbxYQUkM8RVRZEmkLRWsNUBYNb1sQPREFDFYKDmYRQV4='}
- 解码JWT: {'timestamp':'2024-02-29 08:1733:09','userId':'vvzcuuftx14fbbunevefbuneveflatgokqjxzbrulolpggulolpgputssclalpuputsclalpuputsclalpuput