Druid是阿里巴巴出品,为监控而生的数据库连接池。它提供监控SQL的执行时间、监控Web URI的请求、Session监控等功能。在配置不当时它允许任何用户直接查看监控面板页面,该页面存在数据库用户,数据库名等敏感数据,攻击者可能通过这些敏感数据进行更进一步的攻击。

【漏洞预警】druid未授权访问漏洞
漏洞级别:高危
漏洞类型:逻辑漏洞

漏洞讲解:druid没有设置授权访问,通过/druid/index.html进入到druid监控页面后打开sessin监控,里面是监控的所有sessin,只要配置url监控里面的地址,判断session是否失效,拿到没有失效的sessin,通过浏览器cookie替换器,替换sessin,即可登录后台

1.检查 POM 清单中是否引用 Druid 组件:
	<dependency>
		<groupId>com.alibaba</groupId>
		<artifactId>druid</artifactId>
		<version>${druid-version}</version>
	</dependency>

<dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid-spring-boot-starter</artifactId>
            <version>1.1.24</version>
</dependency>

2.检查application配置文件中是否开启Druid监控:
spring:
  datasource:
    druid:
      stat-view-servlet:
        # 是否启用StatViewServlet(监控页面),默认true-启动,false-不启动
        enabled: true
 或
spring.datasource.druid.stat-view-servlet.enabled=true


修复方法:

方式一:关闭druid监控
【springboot application.yml配置】
spring:
  datasource:
    druid:
      stat-view-servlet:
        # 是否启用StatViewServlet(监控页面),默认true-启动,false-不启动
        enabled: false

【application.properties配置】
#是否启用StatViewServlet(监控页面),默认true-启动,false-不启动
spring.datasource.druid.stat-view-servlet.enabled=false

方式二:配置内网白名单与账号密码

spring.datasource.druid.stat-view-servlet.enabled=true
spring.datasource.druid.stat-view-servlet.login-username=自定义用户名
spring.datasource.druid.stat-view-servlet.login-password=强口令
spring.datasource.druid.stat-view-servlet.allow=127.0.0.1 #禁止暴露公网

spring:
  datasource:
    druid:
      stat-view-servlet:
        # 是否启用StatViewServlet(监控页面),默认true-启动,false-不启动
        enabled: false
        login-username: 自定义用户名
        login-password: 强口令
allow: 127.0.0.1 #禁止暴露公网