这是我蒙着眼睛下载的一个登录系统的帖子数据(自己想研究ctf)。
{"jwe":"eyJraWQiOiJlNjY0NTg4ZS0yNjY1LTQzYmMtYjQ5Ny1mYmVmZGEzYTI2ZGYiLCJhbGciOiJSU0EtT0FFUC0yNTYiLCJlbmMiOiJBMjU2R0NNIn0.bAYq1SfpOXpUALY8mQ_omfutvwB37se6xLw29NcSIkEyZVlERSbJpE1eX_kgU7jEW1FUNGgVeoabmMl-3C8MGk5rc4KAE9iod-zCRP46ylRSXFbYu3_kMXlNfM7-W1G2PGPmywgROMOMjsVarg1vj-gFm--88vUEM-ZL9kQI7gVTzZPB_jwrJzGAp0AeEQE1H9xkkHuU-41piWKcH2_X28F1TKJcMNkvaazl1th1fllAZH8P19xsA6eoD1PbCDIwhoJNzvhct2CG6uE1xY4jTZLPGxARn7fF-QubW0IZacxP9MYqZao9wuOH1iW8z-rGSm2CcNlsE_X9ntSjfatfxx7izDe5dSY1emMcDb9xcWrmGGlhkduAUxQv3BMlZ7SHCcM-MEYsg3FG8vMOrxHG4EWPhr4_aOaWg_EV8LD6VFJMRPF5bQEigv-XomheYtZF5KYkCJJ_6CQpzO3LQqa4xL14Nj3B9vj5yEXyY9YGYZQMVGZde5n3RGSGNfMdQa2oJxW9cs94zkafCF4he0qVxcEPiXYQVMESvAE_y3G8UOegwKmcttLIJQJ1mVIzhkAyWPzjTjEgwtQmdxu1Hkt37F30KpIvAGwkhjpcEsOqsf8eT5IZZh21wsrjs-isYsPBsH-fQoM1V8XZyEOi3LI6knPGMz_4bGYSNEfwUOq1-bw.dvuMp84sSnRb9--R.TVVrdqV_oluz54mSHdQNnxnhaJE4ULoJBr3LFFZcAJjEdWPlh97Q8VRd7uiWGsEiawaX6L2FsYaX39OImhddDhcYoHOOnEEAi7HBTlvw1RZHxcml_7LnznH7u53DzDHUesunoRPxT_99-5veBznlCXDiBufe40XRlVLYs1zIrQjxyMp4u6V0UM4EFzsO.LWik0fBAnGH1lX4N1m_2EQ"}
我发现它的第一部分(字符串的开始到第一个".")是一个base64加密代码,显示了这一点。
{"kid":"e664588e-2665-43bc-b497-fbefda3a26df","alg":"RSA-OAEP-256","enc":"A256GCM"}.
在网站的代码上搜索,我发现有一个目录,里面有一个文件,里面有这样的信息。
我以为其他的数据都是用RSA-OAEP-256加密的,于是我试着把用". "隔开的字符串的其他参数反过来,但没有得到任何像样的结果。我完全不能理解。
如果你想了解什么是JWE,你可以先从 宣读说明书.
你所拥有的数据是JWE下的 紧凑的序列化模式 适用于网络环境。
与JWS(签名代币)类似,JWE的第一部分是它的头。它至少要有
alg
对应于加密内容加密密钥(CEK)的算法。enc
对应于用CEK对内容进行加密解密的算法。该 kid
是一个可选的头参数,表示用于计算该令牌的密钥的ID。你找到的密钥是公钥。它可以用来创建其他令牌,比如这个令牌。你需要私钥来解密这些令牌。
令牌的第二部分是加密的CEK。它可以是空的,这取决于内容加密算法(如 dir
或 ECDH-ES
). 为了得到CEK,你需要用以下的算法 alg
(RSA-OAEP-256
)和私钥。
第3、4、5部分是初始化向量(IV)、加密内容和认证标签。
通过该CEK,内容加密算法 enc
(A256GCM),第3部分(IV)和第5部分(tag),你将能够解密令牌的内容(第4部分)。
如果没有RSA私钥,你将无法解密它(除非你知道RSA-OAEP-256算法的攻击,或者有大规模的黑客工具)。