Webgoat--Authentication Bypasses

攻击方式

通过html中隐藏的input标签值

通过移除/修改提交的参数来确认程序的响应

通过猜测和暴力破解强制访问站点的某些URL

2FA Password Reset

将secQuestion0,secQuestion1改为secQuestion2 secQuestion3即可

在这里插入图片描述

JWT (JSON Web tokens)

  • 概念
    一种在客户端和服务器之间使用JSON对象

令牌格式为Header.playload.Signature

Header中存放加密的算法和类型,数据为JSON经过BASE64URL算法的编码结果
JSON字符串格式为:

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

playload中存放实际传递的数据(该部分非加密格式,可任意读取),数据为JSON经过BASE64URL算法的编码结果。

playload分三种声明(claims):
Registered claims(注册声明)
这些是一组预先定义的声明,它们不是强制性的,但推荐使用,以提供一组有用的,可互操作的声明。 其中一些是:iss(发行者),exp(到期时间),sub(主题),aud(受众)
Public claims(公开声明)
由使用JWT的人员随意定义
Private claims(私有声明)
这些是为了同意使用它们但是既没有登记,也没有公开声明的各方之间共享信息,而创建的定制声明。

JSON字符串格式为:

{
     	
	"exp": 1416471934,  "user_name": "user",  
	"scope": [    "read",    "write"  ],  
	"authorities": [    "ROLE_ADMIN",    "ROLE_USER"  ],  
	"jti": "9bc92a44-0b1a-4c5e-be70-da52075b9a84",  
	"client_id": "my-client-with-secret"
}

Signature中存放通过secret对header和claims计算签名并经过BASE64URL算法的编码结果,算法格式为:

HMACSHA256(base64UrlEncode(header) + "." +base64UrlEncode(payload),secret)

Base64URL编码与Base64类似,主要是将Base64编码中的=省略,+替换为-,/替换为_

https://www.cnblogs.com/mantoudev/p/8994341.html

攻击方式

将签名算法设置为none从而绕过签名验证
密钥暴力破解token信息
利用refresh token逻辑错误,对其他账号的access token进行刷新

  • 将签名算法设置为none从而绕过签名验证
    抓包获取Tom的JWT
    在这里插入图片描述
    访问http://jwt.io 对jwt解码
    在这里插入图片描述
    把加密算法置空,把admin置为true,得到新的token
import base64
def b64urlencode(data):
    return base64.b64encode(data).replace(b'+', b'-').replace(b'/',
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值