web渗透测试漏洞复现:Springboot Actuator未授权漏洞复现
Spring Boot Actuator是Spring Boot应用的管理接口,它提供了一个用于监控和管理应用的JMX-HTTP桥接。在其最新的版本中,Actuator的某些端点(如shutdown)默认是关闭的,但是它们可以通过配置开启并暴露。
未授权访问Actuator端点可能导致敏感信息泄露,也可能允许攻击者执行关闭应用程序等操作。
未授权访问Spring Boot Actuator漏洞复现步骤:
- 确保Spring Boot应用开启了Actuator的某个端点(例如
/shutdown
)。 - 不需要认证或者授权头(如Bearer Token),访问Actuator的
/shutdown
端点。
以下是一个未授权访问Spring Boot Actuator /shutdown
端点的示例代码:
curl -X POST http://your-spring-boot-app-host:port/actuator/shutdown
如果成功,Spring Boot应用将关闭。
解决方法:
- 对Actuator端点进行严格的权限控制,通过配置文件或代码设置权限。
- 使用Spring Security对Actuator端点进行安全配置,确保只有授权的用户可以访问。
- 不要在生产环境中暴露Actuator端点,或者将其保护在防火墙之后。
示例配置Spring Security来保护Actuator端点:
import org.springframework.context.annotation.Configuration;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
@Configuration
public class ActuatorSecurity extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http
// ... 其他配置 ...
.authorizeRequests()
.requestMatchers("/actuator/**").authenticated() // 要求所有/actuator/**的请求都需要认证
.anyRequest().permitAll() // 允许其他请求无需认证
// ... 其他配置 ...
.and()
// ... 认证配置 ...
;
}
}
在配置了Spring Security后,只有提供了正确认证的用户才能访问Actuator端点。
评论已关闭