Java特色-表达式注入漏洞从入门到放弃
前言(2020/05/04更新)看 Java 相关的漏洞有一段时间了,觉得 Java 特色的很多漏洞和知识点都相当有趣,比如反序列化、JNDI 注入、JRMP 等等,最近翻文章的时候看到了 Spring-data-commons(CVE-2018-1273) 这个漏洞,看到了 Spring 框架特色的 Spel 表达式注入,想起来以前写了一半差一步的 Nexus Repository Manager 3 CVE-2019-7238(Jexl表达式) ,还想到了以前做过的 ph 牛的 code-breaking ,以及 nuxeo rce ,正好写一起总结一番。...
Spring Cloud Config Server 路径穿越与任意文件读取漏洞 CVE-2019-3799复现
前言在分布式系统中,由于服务众多的关系,为了方便服务配置文件统一管理,实时更新,所以需要分布式配置中心组件,而 Spring Cloud Config 项目就是一个能解决分布式系统需求的配置管理方案。
Spring Cloud Config 分为 server 和 client 两个部分: server 用于从 GitHub 或其他地方获取配置文件、存储,并通过 HTTP 接口的方式将它们提供给 client , client 再通过这些配置文件来初始化自身。
按照官方文档的说明,想要获取官方示例中的 https://github.com/spring-cloud-samples/config-repo/blob/master/test.json 文件,在配置好 server 之后, client 就可以访问 server 的 /{name}/{profile}/{label}/{path} (这里是 /foo/default/master/test.json ) HTTP 接口, server 会访问 GitHub 并将文件下载到本地,然后通过 HTTP 响应返回给 client 。
在这个过程中,由于 server 没有对输入的 path 进行检查的原因,所以存在一个服务端目录穿越和任意文件读取的漏洞。...