奇葩逻辑漏洞分享之虚假的 JWT 认证

admin 2024年8月12日14:42:12评论20 views字数 516阅读1分43秒阅读模式

场景再现

API 接口使用了  JWT Token 认证,且返回了大量敏感信息:

奇葩逻辑漏洞分享之虚假的 JWT 认证

当 JWT Token 不正确的时候,不能返回信息,提示没权限:

奇葩逻辑漏洞分享之虚假的 JWT 认证

目前看上去一切正常,很合理:

奇葩逻辑漏洞分享之虚假的 JWT 认证

但是,下面问题来了,我们把 JWT Token 删了看看:

奇葩逻辑漏洞分享之虚假的 JWT 认证

什么!居然也正常返回敏感信息了!:

奇葩逻辑漏洞分享之虚假的 JWT 认证

这得是什么样的代码才可以写出这样的漏洞啊?

漏洞讨论

这种代码逻辑的代码到底是怎么样的呢?下面是网友们的可能性猜测:

奇葩逻辑漏洞分享之虚假的 JWT 认证
奇葩逻辑漏洞分享之虚假的 JWT 认证

举一反三

网友 CCGK 分享了 golang 里面的另一个可能类似的坑点,如果业务把异常信息默认为对的话,那使用下面的代码也可能存在问题:

奇葩逻辑漏洞分享之虚假的 JWT 认证

在 Go 语言中,ParseIntstrconv 包中的一个函数,用于将字符串解析为整数:

func ParseInt(s string, base int, bitSize int) (i int64, err error)
  • s 为空字符串:它会返回 0 和一个错误 strconv.ErrSyntax,表示语法错误。
  • s"0":如果你调用 strconv.ParseInt("0", 10, 0),它会返回 0nil,表示成功解析。
  • s 为其他有效的数字字符串(例如 "123":它会返回相应的整数值和 nil 错误。

原文始发于微信公众号(安全小姿势):奇葩逻辑漏洞分享之虚假的 JWT 认证

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年8月12日14:42:12
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   奇葩逻辑漏洞分享之虚假的 JWT 认证https://cn-sec.com/archives/3058777.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息