Portswigger Burp学院JWT

admin 2023年7月24日15:01:22评论41 views字数 3176阅读10分35秒阅读模式

点击蓝字 关注我们

Portswigger Burp学院JWT

免责声明

本文发布的工具和脚本,仅用作测试和学习研究,禁止用于商业用途,不能保证其合法性,准确性,完整性和有效性,请根据情况自行判断。

如果任何单位或个人认为该项目的脚本可能涉嫌侵犯其权利,则应及时通知并提供身份证明,所有权证明,我们将在收到认证文件后删除相关内容。

文中所涉及的技术、思路及工具等相关知识仅供安全为目的的学习使用,任何人不得将其应用于非法用途及盈利等目的,间接使用文章中的任何工具、思路及技术,我方对于由此引起的法律后果概不负责。

添加星标不迷路

由于公众号推送规则改变,微信头条公众号信息会被折叠,为了避免错过公众号推送,请大家动动手指设置“星标”,设置之后就可以和从前一样收到推送啦

一、JWT介绍

JWT代表JSON Web Token,它是一种用于在网络应用之间传递信息的开放标准。JWT是一个基于JSON的安全令牌,用于在客户端和服务器之间进行身份验证授权

1.JWT原理

服务器收到请求,认证成功后,生成json格式的数据包,然后进行签名发送给客户端。

json格式如下:

{
name:"cc1aaac",
role:"administrtor",
time:"16151641121" # 认证到期时间
}

JWT由三个部分组成,它们通过点号分隔开来

Header(头部):包含了令牌的类型和所使用的签名算法。
Payload(负载):包含了要传输的数据,例如用户的身份信息和其他元数据。
Signature(签名):使用指定的算法和密钥对头部和负载进行签名,以确保数据的完整性和验证令牌的来源。

header是一个json格式的数据,alg表示签名使用的算法,默认是HMAC SHA256(HS256),type表示token的类型为jwt。

payload中用来存放实际传输的数据,可以使用官方的字段,也可以自己定义,数据可是解密后也是json格式

signature:是对前俩部分的签名,防篡改。指定一个只有服务器才知道的密钥,使用header中的签名算法,签名后把三个部分拼成一个字符串,用点分隔,发送给客户端。

{
"alg":"HS256",
"type":"JWT"
}

JWT的工作流程通常如下

1.用户使用凭据(如用户名和密码)向服务器进行身份验证。
2.服务器验证凭据并生成一个JWT。
3.服务器将JWT返回给客户端。
4.客户端将JWT存储在本地(通常是在浏览器的cookie或本地存储中)。
5.客户端在将来的请求中将JWT作为身份验证凭据发送给服务器。
6.服务器接收到请求后,解析JWT并验证签名以确保其完整性和来源。
7.如果JWT验证成功,服务器使用其中的信息执行相应的操作,如身份验证或授权。
8.服务器返回响应给客户端。

二、接受任意签名

https://portswigger.net/web-security/all-labs#jwt

原理:服务器不会验证它收到的任何 JWT 的签名

使用wiener : peter登录

Portswigger Burp学院JWT

登陆后,拦截GET /my-account HTTP/1.1请求

Portswigger Burp学院JWT

使用在线工具https://jwt.io/或者JSON Web Tokens解码

Portswigger Burp学院JWT

访问/admin页面,开启拦截后修改JWT,由于是不验证签名,将wiener改为administrator

Portswigger Burp学院JWT

注意后面的请求包中,如果携带JWT的要全部修改,修改后即可看到可以删除用户
Portswigger Burp学院JWT

点击delete后,发现当前的JWT还是wiener用户,我们需要修改为administrator,将后面的请求全部进行修改
Portswigger Burp学院JWT

Congratulations, you solved the lab!可以看到已经破解

Portswigger Burp学院JWT

三、接受未签名的令牌

https://portswigger.net/web-security/jwt/lab-jwt-authentication-bypass-via-flawed-signature-verification

看到数据是以 eyJ 开头的,得知是JWT。

访问靶场登陆后发现存在JWT

Portswigger Burp学院JWT

将/my-account请求包发送到repeater,可以看到是wiener用户

Portswigger Burp学院JWT

在插件中将alg设置为None,然后删除签名,修改用户名为administrator

Portswigger Burp学院JWT

修改后重新发送请求,发现用户名为administrator

Portswigger Burp学院JWT

复制administrator的cookie,然后更新到浏览器中,刷新页面,即可登录administrator

Portswigger Burp学院JWT

然后访问/admin,删除账号即可过关

Portswigger Burp学院JWT

四、爆破密钥

https://portswigger.net/web-security/jwt/lab-jwt-authentication-bypass-via-weak-signing-key

登录后尝试前俩个方法无果,进行爆破密钥,最终爆破出密钥为secret1

方法1:

./jwtcrack eyJraWQiOiJkZGVhNTcyYy1hOTAzLTQyYzQtYTcxMi1hMWVhODNiZGQ1OTciLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwb3J0c3dpZ2dlciIsInN1YiI6IndpZW5lciIsImV4cCI6MTY3NjYyMDIyNX0.uo-P1yOr_sdOeF-kM3h5A3Ny2XB_wM9p5C6Lp0wf-U8

方法2:

.hashcat.exe -a 0 -m 16500 eyJraWQiOiI0ZjIyYWI0Zi0yMjM0LTRhZGItOTMxNC1kN2FlOWM2ZGI2ZTIiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwb3J0c3dpZ2dlciIsInN1YiI6IndpZW5lciIsImV4cCI6MTY2ODc2NTg5Nn0.qoqNn749sftmFnsmBO3GoGOUXk4oeTRs770lbpwDEIA C:UsersasukaDesktopjwt.secrets.list

方法3:

python ./jwt_tool.py eyJraWQiOiI0ZjIyYWI0Zi0yMjM0LTRhZGItOTMxNC1kN2FlOWM2ZGI2ZTIiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwb3J0c3dpZ2dlciIsInN1YiI6IndpZW5lciIsImV4cCI6MTY2ODc2NTg5Nn0.
qoqNn749sftmFnsmBO3GoGOUXk4oeTRs770lbpwDEIA -C -d /usr/share/SecLists-2022.2/Passwords/Common-Credentials/10k-most-common.txt

在JSON Web Tokens插件中修改sub,然后根据密钥重新生成一个签名,进行访问

Portswigger Burp学院JWT

Portswigger Burp学院JWT

访问后提示Duplicate header names are not allowed,说明头部重复了

Portswigger Burp学院JWT

删除第16行后发现成功登录administrator

Portswigger Burp学院JWT

最后将上面的cookie复制到浏览器进行替换,访问/admin后删除用户即可

Portswigger Burp学院JWT


欢迎关注SecHub网络安全社区,SecHub网络安全社区目前邀请式注册,邀请码获取见公众号菜单【邀请码】

#


企业简介   


赛克艾威 - 专注政企安全服务


       北京赛克艾威科技有限公司(简称:赛克艾威),成立于2016年9月,提供全面的安全解决方案和专业的技术服务,帮助客户保护数字资产和网络环境的安全。


安全评估|渗透测试|漏洞扫描|安全巡检

代码审计|钓鱼演练|应急响应|安全运维

重大时刻安保|企业安全培训

Portswigger Burp学院JWT

联系方式

电话|010-86460828 

官网|http://www.secevery.com

Portswigger Burp学院JWT

关注我们

Portswigger Burp学院JWT
Portswigger Burp学院JWT
Portswigger Burp学院JWT

公众号:sechub安全

哔哩号:SecHub官方账号


原文始发于微信公众号(SecHub网络安全社区):Portswigger Burp学院JWT

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年7月24日15:01:22
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   Portswigger Burp学院JWThttps://cn-sec.com/archives/1902480.html

发表评论

匿名网友 填写信息