如何防范SpringBoot 相关漏洞?
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 应用的相关接口和传参信息并不能算是漏洞,但是以 "默认安全" 来讲,不暴露出这些信息更加安全。
对于攻击者来讲,一般会仔细审计暴露出的接口以增加对业务系统的了解,并会同时检查应用系统是否存在未授权访问、越权等其他业务类型漏洞。
是不是浅显易懂,一下子就讲明白了整个漏洞的原理及校验方式?看完整个项目,一定能让大家学会如何利用方法和技巧,做到黑盒安全评估!想学习的小伙伴,赶紧跟着小编一起上车!
点击下方卡片,关注公众号“TJ君”
回复“漏洞”,获取项目地址
如何防范SpringBoot 相关漏洞?相关推荐
- SpringBoot相关漏洞
以下文章来源方志朋的博客,回复"666"获面试宝典 本文是 Spring Boot 相关漏洞的学习资源,仅作为安全研究和授权测试使用,不要用于非法活动. 这个GitHub项目从信息 ...
- 计算机网络安全专业论文题目,系统类有关计算机专业论文题目,关于计算机网络安全漏洞防范措施相关毕业论文格式...
这篇系统论文范文属于程序设计免费优秀学术论文范文,系统类有关毕业论文格式,与计算机网络安全漏洞防范措施相关计算机专业论文题目.适合系统及安全漏洞及漏洞方面的的大学硕士和本科毕业论文以及系统相关开题报告 ...
- 计算机网络故障防范措施,关于计算机网络类论文范文素材,与计算机网络故障的处理与防范措施相关在职毕业论文范文...
关于计算机网络类论文范文素材,与计算机网络故障的处理与防范措施相关在职毕业论文范文 关于计算机网络及计算机及计算机网络故障方面的免费优秀学术论文范文,关于计算机网络类发表论文,关于计算机网络故障的处理 ...
- php_rce-攻防世界-web-ThinkPHP版本5的相关漏洞
题目是ThinkPHP版本5的相关漏洞 ThinkPHP5框架底层对控制器名过滤不严,可以通过url调用到ThinkPHP框架内部的敏感函数,进而导致getshell漏洞. s=index/think ...
- 深度解读《关于防范NFT相关金融风险倡议》透露哪些监管信号与数字藏品新发展之路?
不可否认,NFT是当下最热门也是最"神秘"的领域,被柯林斯词典评为2021年年度词汇,持续为大众瞩目. NFT之风吹向国内之后,以数字藏品的身份,深受时尚.文艺.体娱.新零售等各界 ...
- iOS 8.1.2 越狱过程详解及相关漏洞分析
360NirvanTeam · 2016/01/10 12:35 Author:[email protected] 0x00 简介 本文主要介绍了: 自己对越狱的理解 iOS 8.1.2 越狱工具的工 ...
- 关于CPU相关漏洞的修复处理
问题描述 2018年1月,谷歌Project Zero公布了现代处理器存在安全漏洞Spectre与Meltdown. Spectre攻击利用的是处理器的分支猜测和高速缓存技术.在执行指令的过程中,当遇 ...
- OpenSSL相关漏洞
目录 心脏出血漏洞(CVE-2014-0160) OpenSSL CCS注入漏洞(CVE-2014-0224) OpenSSL FREAK Attack漏洞(CVE-2015-0204) TLS/SS ...
- SSL相关漏洞解决方法
最近用绿盟扫描系统进行内网网系统扫描,有几台设备被扫出了SSL相关漏洞,在此做一个简短的加固方法. 本次涉及漏洞 1.漏洞名称:SSL 3.0 POODLE攻击信息泄露漏洞(CVE-2014-3566 ...
最新文章
- Linux shell脚本判断服务器网络是否可以上网
- iOS设置UIWebView的UserAgent
- java届的黄埔军校_法学界的“黄埔军校”:拒绝与985合并,是其最大遗憾
- SAP License:SAP订单的归档及删除
- Java 多线程详解(五)------线程的声明周期
- [Android] Android 任务栈 【转载】
- mysql实现自动更新时间戳
- DST(对话状态追踪)常用方法
- 十大关键词,看2022元宇宙的落地应用
- 网上零食销售系统(Java;JSP;JDBC)附源码+数据库+论文
- EEGLAB初步学习(1)
- 第十四篇 积分器和积分运算电路
- 塑胶模具设计:从材料优缺点来看塑料特性
- 511遇见易语言注册调用乐玩插件类模块封装
- Linux NIS服务
- 计算机病毒与蠕虫的特点比较,蠕虫病毒的特点是什么
- android webview 图片异步加载,Webview 图片异步加载及bug解决
- 集合高德地图搜索--导出Excel数据 工具
- 爬虫百战(四)——爬取yy短视频
- 互怼、IPO、雷潮、寒冬,2018 互联网圈的那些事儿
热门文章
- 大道至简,回归到梦开始的地方。人生如此,编程亦如此。
- WinAPI: GetTickCount - 获取系统已启动的时间
- linux 进程监听服务 monit 简介
- mysql 查询 字段是否为空
- golang 获取公网ip 内网ip 检测ip类型 校验ip区间 ip地址string和int转换 判断ip地区国家运营商
- python3 字符串 和 列表(list)互相转换
- linux 空闲等待时间TMOUT 反空闲设置 简介
- linux truss strace ltrace 对比 诊断调试程序
- linux shell 算术运算{expr、bc、dc、(( ))和[ ]}
- 数据段、数据报、数据包、帧的区别与联系