网站首页 > 开源技术 正文
原文链接:https://mp.weixin.qq.com/s/DvMJcaPYG_KJf5xQnLPd7A
Spring Boot可能是习惯于用Java的小伙伴们用得最多的一种应用框架,但是各位程序猿小伙伴知不知道Spring Boot有哪些平时不容易注意到的漏洞需要避免呢?
小编今天就给大家介绍一个GitHub上关于Spring Boot漏洞大集合的项目,不过要注意的是,这个项目的初衷可是让大家研究和测试这些漏洞,以防自己的程序留下不安全的后门,可不要故意使用这些漏洞造成他人的损害哟~
小编先带大家看下整个项目的目录:
- Spring Boot Vulnerability Exploit Check List
- 零:路由和版本
- 0x01:路由知识
- 0x02:版本知识
- 组件版本的相互依赖关系:
- Spring Cloud 与 Spring Boot 版本之间的依赖关系:
- Spring Cloud 小版本号的后缀及含义:
- 一:信息泄露
- 0x01:路由地址及接口调用详情泄漏
- 0x02:配置不当而暴露的路由
- 0x03:获取被星号脱敏的密码的明文 (方法一)
- 利用条件:
- 利用方法:
- 步骤一: 找到想要获取的属性名
- 步骤二:jolokia 调用相关 Mbean 获取明文
- 0x04:获取被星号脱敏的密码的明文 (方法二)
- 利用条件:
- 利用方法:
- 步骤一: 找到想要获取的属性名
- 步骤二: 使用 nc 监听 HTTP 请求
- 步骤三: 设置 eureka.client.serviceUrl.defaultZone 属性
- 步骤四: 刷新配置
- 步骤五: 解码属性值
- 0x05:获取被星号脱敏的密码的明文 (方法三)
- 利用条件:
- 利用方法:
- 步骤一: 找到想要获取的属性名
- 步骤二: 使用 nc 监听 HTTP 请求
- 步骤三: 触发对外 http 请求
- 步骤四: 刷新配置
- 0x06:获取被星号脱敏的密码的明文 (方法四)
- 利用条件:
- 利用方法:
- 步骤一: 找到想要获取的属性名
- 步骤二: 下载 jvm heap 信息
- 步骤三: 使用 MAT 获得 jvm heap 中的密码明文
- 二:远程代码执行
- 0x01:whitelabel error page SpEL RCE
- 利用条件:
- 利用方法:
- 步骤一:找到一个正常传参处
- 步骤二:执行 SpEL 表达式
- 漏洞原理:
- 漏洞分析:
- 漏洞环境:
- 0x02:spring cloud SnakeYAML RCE
- 利用条件:
- 利用方法:
- 步骤一: 托管 yml 和 jar 文件
- 步骤二: 设置 spring.cloud.bootstrap.location 属性
- 步骤三: 刷新配置
- 漏洞原理:
- 漏洞分析:
- 漏洞环境:
- 0x03:eureka xstream deserialization RCE
- 利用条件:
- 利用方法:
- 步骤一:架设响应恶意 XStream payload 的网站
- 步骤二:监听反弹 shell 的端口
- 步骤三:设置 eureka.client.serviceUrl.defaultZone 属性
- 步骤四:刷新配置
- 漏洞原理:
- 漏洞分析:
- 漏洞环境:
- 0x04:jolokia logback JNDI RCE
- 利用条件:
- 利用方法:
- 步骤一:查看已存在的 MBeans
- 步骤二:托管 xml 文件
- 步骤三:准备要执行的 Java 代码
- 步骤四:架设恶意 ldap 服务
- 步骤五:监听反弹 shell 的端口
- 步骤六:从外部 URL 地址加载日志配置文件
- 漏洞原理:
- 漏洞分析:
- 漏洞环境:
- 0x05:jolokia Realm JNDI RCE
- 利用条件:
- 利用方法:
- 步骤一:查看已存在的 MBeans
- 步骤二:准备要执行的 Java 代码
- 步骤三:托管 class 文件
- 步骤四:架设恶意 rmi 服务
- 步骤五:监听反弹 shell 的端口
- 步骤六:发送恶意 payload
- 漏洞原理:
- 漏洞分析:
- 漏洞环境:
- 0x06:restart h2 database query RCE
- 利用条件:
- 利用方法:
- 步骤一:设置 spring.datasource.hikari.connection-test-query 属性
- 步骤二:重启应用
- 漏洞原理:
- 漏洞分析:
- 漏洞环境:
- 0x07:h2 database console JNDI RCE
- 利用条件:
- 利用方法:
- 步骤一:访问路由获得 jsessionid
- 步骤二:准备要执行的 Java 代码
- 步骤三:托管 class 文件
- 步骤四:架设恶意 ldap 服务
- 步骤五:监听反弹 shell 的端口
- 步骤六:发包触发 JNDI 注入
- 漏洞分析:
- 漏洞环境:
- 0x08:mysql jdbc deserialization RCE
- 利用条件:
- 利用方法:
- 步骤一:查看环境依赖
- 步骤二:架设恶意 rogue mysql server
- 步骤三:设置 spring.datasource.url 属性
- 步骤四:刷新配置
- 步骤五:触发数据库查询
- 步骤六:恢复正常 jdbc url
- 漏洞原理:
- 漏洞分析:
- 漏洞环境:
- 0x09:restart logging.config logback JNDI RCE
- 利用条件:
- 利用方法:
- 步骤一:托管 xml 文件
- 步骤二:托管恶意 ldap 服务及代码
- 步骤三:设置 logging.config 属性
- 步骤四:重启应用
- 漏洞原理:
- 漏洞分析:
- 漏洞环境:
- 0x0A:restart logging.config groovy RCE
- 利用条件:
- 利用方法:
- 步骤一:托管 groovy 文件
- 步骤二:设置 logging.config 属性
- 步骤三:重启应用
- 漏洞原理:
- 漏洞环境:
- 0x0B:restart spring.main.sources groovy RCE
- 利用条件:
- 利用方法:
- 步骤一:托管 groovy 文件
- 步骤二:设置 spring.main.sources 属性
- 步骤三:重启应用
- 漏洞原理:
- 漏洞环境:
- 0x0C:restart spring.datasource.data h2 database RCE
- 利用条件:
- 利用方法:
- 步骤一:托管 sql 文件
- 步骤二:设置 spring.datasource.data 属性
- 步骤三:重启应用
- 漏洞原理:
- 漏洞环境:
以信息泄露为例,对于0x01:路由地址及接口调用详情泄漏,项目描述到:
开发人员没有意识到地址泄漏会导致安全隐患或者开发环境切换为线上生产环境时,相关人员没有更改配置文件,忘记切换环境配置等
可以直接访问以下两个 swagger 相关路由,验证漏洞是否存在:
/v2/api-docs
/swagger-ui.html
其他一些可能会遇到的 swagger、swagger codegen、swagger-dubbo 等相关接口路由:
/swagger
/api-docs
/api.html
/swagger-ui
/swagger/codes
/api/index.html
/api/v2/api-docs
/v2/swagger.json
/swagger-ui/html
/distv2/index.html
/swagger/index.html
/sw/swagger-ui.html
/api/swagger-ui.html
/static/swagger.json
/user/swagger-ui.html
/swagger-ui/index.html
/swagger-dubbo/api-docs
/template/swagger-ui.html
/swagger/static/index.html
/dubbo-provider/distv2/index.html
/spring-security-rest/api/swagger-ui.html
/spring-security-oauth-resource/swagger-ui.html
除此之外,下面的 spring boot actuator 相关路由有时也会包含(或推测出)一些接口地址信息,但是无法获得参数相关信息:
/mappings
/metrics
/beans
/configprops
/actuator/metrics
/actuator/mappings
/actuator/beans
/actuator/configprops
一般来讲,暴露出 spring boot 应用的相关接口和传参信息并不能算是漏洞,但是以 "默认安全" 来讲,不暴露出这些信息更加安全。
对于攻击者来讲,一般会仔细审计暴露出的接口以增加对业务系统的了解,并会同时检查应用系统是否存在未授权访问、越权等其他业务类型漏洞。
是不是浅显易懂,一下子就讲明白了整个漏洞的原理及校验方式?看完整个项目,一定能让大家学会如何利用方法和技巧,做到黑盒安全评估!想学习的小伙伴,赶紧跟着小编一起上车!
- 上一篇: JVM性能监控工具
- 下一篇: 世界最辣的十种辣椒甚至有的能让人失去味觉!
猜你喜欢
- 2025-01-01 【SpringCloud】配置:application.yml中都应该写些啥?
- 2025-01-01 「Spring Boot」 Actuator Endpoint
- 2025-01-01 Spring Boot漏洞复现
- 2025-01-01 世界最辣的十种辣椒甚至有的能让人失去味觉!
- 2025-01-01 JVM性能监控工具
- 2025-01-01 Java代码审计之不安全的Java代码
- 2025-01-01 熊孩子将魔鬼辣椒带到学校,然后分给了40个孩子吃
- 2025-01-01 Kafka GUI+实时监控——Kafka Assistant
- 2025-01-01 印度军工又出奇招,世界最猛野椒研制最辣炸弹,熏得大象都受不了
- 2025-01-01 Actuator未授权访问远程代码执行漏洞简单快速修复
你 发表评论:
欢迎- 05-16东契奇:DFS训练时喷了我很多垃圾话 我不懂他为什么比赛不这么干
- 05-16这两球很伤!詹姆斯空篮拉杆不中 DFS接里夫斯传球空接也没放进
- 05-16湖人自媒体调查:89%球迷希望DFS回归79%希望詹姆斯回归
- 05-16Shams:湖人得到全能球员DFS 节省了1500万奢侈税&薪金空间更灵活
- 05-16G5湖人胜率更高!詹姆斯不满判罚,DFS谈5人打满下半场:这很艰难
- 05-16DFS:当东契奇进入状态 所有防守者在他面前都像个圆锥桶
- 05-16上一场9中6!DFS:不能让纳兹-里德这样的球员那么轻松地投三分
- 05-16WIDER FACE评测结果出炉:滴滴人脸检测DFS算法获世界第一
- 最近发表
-
- 东契奇:DFS训练时喷了我很多垃圾话 我不懂他为什么比赛不这么干
- 这两球很伤!詹姆斯空篮拉杆不中 DFS接里夫斯传球空接也没放进
- 湖人自媒体调查:89%球迷希望DFS回归79%希望詹姆斯回归
- Shams:湖人得到全能球员DFS 节省了1500万奢侈税&薪金空间更灵活
- G5湖人胜率更高!詹姆斯不满判罚,DFS谈5人打满下半场:这很艰难
- DFS:当东契奇进入状态 所有防守者在他面前都像个圆锥桶
- 上一场9中6!DFS:不能让纳兹-里德这样的球员那么轻松地投三分
- WIDER FACE评测结果出炉:滴滴人脸检测DFS算法获世界第一
- 湖人自媒体调查:89%球迷希望DFS回归 79%希望詹姆斯回归
- 一觉醒来湖人苦盼的纯3D终于到位 DFS能带给紫金军多少帮助
- 标签列表
-
- jdk (81)
- putty (66)
- rufus (78)
- 内网穿透 (89)
- okhttp (70)
- powertoys (74)
- windowsterminal (81)
- netcat (65)
- ghostscript (65)
- veracrypt (65)
- asp.netcore (70)
- wrk (67)
- aspose.words (80)
- itk (80)
- ajaxfileupload.js (66)
- sqlhelper (67)
- express.js (67)
- phpmailer (67)
- xjar (70)
- redisclient (78)
- wakeonlan (66)
- tinygo (85)
- startbbs (72)
- webftp (82)
- vsvim (79)
本文暂时没有评论,来添加一个吧(●'◡'●)