JavaMelody组件XXE漏洞(CVE-2018-15531)漏洞分析报告

Posted unconscious

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JavaMelody组件XXE漏洞(CVE-2018-15531)漏洞分析报告相关的知识,希望对你有一定的参考价值。

0x001 背景

  JavaMelody是一款运行在Java Web容器中,用来监控Java内存和服务器CPU使用情况的工具,可以通过图表给出监控数据,方便研发运维等找出响应瓶颈、优化响应等。

      该组件低版本存在一个XXE漏洞——CVE-2018-15531,由于该组件的启动特性,攻击者无需特定的权限即可发起攻击。

 

0x002 实验环境

首先需要安装JavaMelody组件,

Github地址:https://github.com/javamelody/javamelody/releases

 

这里我们选择使用的JavaMelody 1.73.1版本进行漏洞复现。 

 

移动javamelody-cre-1.73.1.ar文件到 WebContent-META-INF-lib目录下

 

0x003 调试分析

单击index.html文件,右键->运行方式->Run on Server

技术图片

 访问本地端口,可以看到页面说明开启成功,然后停止运行。

技术图片

寻找下断位置, 首先看看官方补丁。

漏洞修复的commit地址如下:

https://github.com/javamelody/javamelody/commit/ef111822562d0b9365bd3e671a75b65bd0613353#diff-c059097bc33b06c0b5da2d9b7787e806

增加了两行代码,作用分别是禁用DTD和禁用外部实体,如图所示:

 技术图片

 

在未修复补丁处双击下断点。

技术图片

debug模式运行。

技术图片

 

使用burpsuite构建payload触发漏洞进行调试分析。

技术图片

右键打开调用层次结构。

技术图片

技术图片

 

我们可以看到调用链。

      MonitoringFilter拦截器 –> doFilter() -> createRequestWrapper() -> PayloadNameRequestWrapper  ->  initialize()  ->  parseSoapMethodName()

技术图片

 

 

通过堆栈回溯分析,可以看到触发需求。

contentType类型符合:application/soap+xml 或者 text.xml

技术图片

 

就调用xml解析函数,触发xxe攻击。

技术图片

 

nc -lvp 80 监控本地80端口数据包。

技术图片

 

 

 0x004 修复方案

 禁用DTD和外部实体引用。

参考官方补丁:

技术图片

 

0x005 参考文档

https://anquan.baidu.com/article/421 JavaMelody XXE漏洞(CVE-2018-15531)分析

 

以上是关于JavaMelody组件XXE漏洞(CVE-2018-15531)漏洞分析报告的主要内容,如果未能解决你的问题,请参考以下文章

更新IBM WebSphere Application Server XXE 漏洞CVE-2020-4643

安全-XXE漏洞复现(xxe-lab)

XXE漏洞学习

XXE漏洞简介以及Payload收集

Web漏洞|XXE漏洞详解(XML外部实体注入)

漏洞复现之xxe漏洞