Problem: [陇剑杯 2021]jwt(问1)
思路
- 追踪http流 发现tocken base64解码eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9(点号前的内容)得知是jwt认证方式
解析
- token是什么?
token 就像一把“电子钥匙”或“门票”,用于证明用户的身份。
- 你登录网站后,服务器给你一个token(比如存在浏览器cookie里)。
- 之后每次访问网站,浏览器自动带上这个token,服务器验证它就知道你是谁,无需重复登录。
- 你看到的
token=eyJ...就是这把钥匙的编码形式。
2.base64解码后的意思
{"alg":"HS256","typ":"JWT"}
这是 JWT的头部(Header),包含:
alg:签名算法(HS256)typ:令牌类型(JWT)
JWT还有第二部分(Payload,存放用户信息)和第三部分(Signature,签名验证真伪)。
从流量中看到:
- 请求中带有
token=eyJxxxxx.yyyyyyyy.zzzzzzzz这种三段式、用点分隔的字符串。 - 解码第一段得到
{"alg":"HS256","typ":"JWT"},明确指明了这是JWT格式。 - 这是一种常见的Web认证方式,用于代替传统的Session/Cookie。
🧠 扩展知识
JWT常用于:
- 前后端分离项目的用户认证
- 单点登录(SSO)
- API接口鉴权
但JWT也有安全隐患,如果密钥泄露或算法被篡改(如改为alg:none),可能导致越权漏洞,这也是CTF常见的考点。
总结
- 流量识别能力:在HTTP流量中找到认证凭据(token参数)。
- JWT格式识别:三段式、点分隔、Base64编码。
- 基础解码能力:知道Base64解码查看内容。
