Spring Boot Actuator未授权访问漏洞和Apache Druid 漏洞修复

9 篇文章 0 订阅
1 篇文章 0 订阅
Spring Boot Actuator未授权访问漏洞

详细描述

​ Actuator 是 springboot 提供的用来对应用系统进行自省和监控的功能模块,借助于 Actuator 开发者可以很方便地对应用系统某些监控指标进行查看、统计等。在 Actuator 启用的情况下,如果没有做好相关权限控制,非法用户可通过访问默认的执行器端点(endpoints)来获取应用系统中的监控信息。

解决办法

1.配置认证
在项目的pom.xml文件下引入spring-boot-starter-security依赖

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>

然后在application.properties中开启security功能,配置访问账号密码,重启应用即可弹出。

management.security.enabled=true
security.user.name=admin
security.user.password=admin

2.禁用接口
禁用全部接口:

endpoints.enabled = false

禁用部分接口,如env:

endpoints.env.enabled = false
Apache Druid 未授权访问

详细描述

Apache Druid 是用Java编写的面向列的开源分布式数据存储,旨在快速获取大量事件数据,并在数据之上提供低延迟查询。

Apache Druid 默认情况下缺乏授权认证,从而导致未授权访问漏洞。

解决办法

增加用户名密码配置。

代码修改WebConfiguration
	@Value("${spring.druid.allowed:?}")
	private String druidAllowed;
	@Value("${spring.druid.password:?}")
	private String druidPassword;
	@Bean
	public ServletRegistrationBean servletRegistrationBean(){
		ServletRegistrationBean druidServlet = new ServletRegistrationBean(new StatViewServlet(), "/druid/*");
		Map<String, String> map = new HashMap<String, String>();
		if(!"?".equals(druidPassword)) {
			map.put("loginUsername", "admin");
			map.put("loginPassword", druidPassword);
		}
		if (!"?".equals(druidAllowed)) {
			map.put("allow", druidAllowed);
		}
		druidServlet.setInitParameters(map);
		return druidServlet;
	}
配置文件修改

下面的配置为登录账号和密码

spring.druid.allowed=admin
spring.druid.password=123456
登录页面

http://{ip}:{port}/druid/login.html
登录账号密码为配置文件配置allowed和password
在这里插入图片描述

成功页面

在这里插入图片描述

  • 4
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值