【网络安全 | 漏洞挖掘】2500 美元:通过 JWT IDOR 实现账户接管

未经许可,不得转载。

文章目录

正文

我点击"提交新名称"时,请求会携带一个 JWT 令牌和请求体,我们重点关注请求体中的user_id字段。
在这里插入图片描述

如果信息正确且系统接受更改,则返回成功响应(200 OK)。

如果信息错误或用户未被授权,则返回失败响应(401 Unauthorized)。

现在来看看 JWT 字段:

在这里插入图片描述

在解码 JWT 后,我发现其中包含以下信息:

在这里插入图片描述

如果你注意到之前提到的请求以及解密后的 JWT,你会发现两者存在相似之处。

请求中的 user_id 示例:

"user_id": "User:01946fa0-xxxxxx-04f8–0000-xxxxxxxxx"

JWT 解密后的 uid 示例:

"uid": "01946fa0-xxxxxx-04f8–0000-xxxxxxxxx"

由此可以明确,在会话中存储了一个 JWT,经过加密后,user_id 以 “User:01946fa0-xxxxxx-04f8–0000-xxxxxxxxx” 的形式暴露在请求中。

经过测试,我发现,只要能够访问 “User:01946fa0-xxxxxx-04f8–0000-xxxxxxxxx”,那么就可以修改该用户的账户数据,实现账户接管。

可以使用 jsonwebtoken(Node.js 中的 JWT 处理库)编写一个工具,生成一个包含其他用户 ID 的修改版 JWT。

原文出处:https://medium.com/@HackerPlus/account-takeover-via-idor-form-jwt-programs-hackerone-2500-0a378fe2c951

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

秋说

感谢打赏

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值