javamelody XML外部实体注入(CVE-2018-15531)
https://github.com/javamelody/javamelody/commit/ef111822562d0b9365bd3e671a75b65bd0613353
通过补丁可以看出,处理xml使用的是XMLInputFactory,禁用了对外部实体解析和dtd实体解析。
在发起一个请求时会先进入MonitoringFilter拦截器进行拦截。调用的是dofilter方法。
进入到createRequestWrapper方法中。接着进入到PayloadNameRequestWrapper.initialize方法中对数据进行初始化
接着会对我们发送请求的context-type进行判断
进入到PayloadNameRequestWrapper的parseSoapMethodName方法后,在这里对xml文档进行实例化,但是实例化以后没有进行任何的过滤和处理来防止xxe漏洞。
平时进行漏洞挖掘的时候,尝试寻找没有进行过滤和处理的地方,例如这个漏洞就很明显了,再进行反推,哪个地方调用了哪个方法。最终寻找到入口处。