技术干货 | 针对Spring-Boot 框架漏洞的初探
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
import org.springframework.stereotype.Component;
@Component
public class SpringContextUtil implements ApplicationContextAware {
private static ApplicationContext context;
@Override
public void setApplicationContext(ApplicationContext applicationContext) {
SpringContextUtil.context = applicationContext;
}
public static <T> T getBean(Class<T> clazz) {
return context.getBean(clazz);
}
public static Object getBean(String name) {
return context.getBean(name);
}
}
这段代码定义了一个SpringContextUtil工具类,实现了ApplicationContextAware接口,并重写了setApplicationContext方法。这样,当Spring容器启动时,会自动将ApplicationContext设置到这个工具类中,使得应用可以在任何地方任何时刻获取到Spring容器中的Bean。这种方式可以用来探测Spring框架的漏洞,例如通过获取某些特定Bean来判断应用是否使用了特定版本的Spring框架,或者是否配置了某些敏感组件。
评论已关闭