0x01 背景
JavaMelody是一款在生产和QA环境中对JAVA应用以及应用服务器(Tomcat、Jboss、Weblogic)进行监控的工具,可以通过图表给出监控数据,方便研发运维等找出响应瓶颈、优化响应等。
近日发布了1.74.0版本,修复了一个XXE漏洞,漏洞编号CVE-2018-15531。攻击者利用漏洞,可以读取JavaMelody服务器上的敏感信息。
0x02 漏洞分析
漏洞修复的commit地址如下:
增加了两行代码,作用分别是禁用DTD和禁用外部实体,如图所示:
增加这两行代码之后,攻击者就无法使用XXE漏洞来进行文件读取。
查看修复前的代码文件src/main/java/net/bull/javamelody/PayloadNameRequestWrapper.java,如图:
使用StAX来对XML进行解析,未禁用DTDs和外部实体,再看看那些地方调用了parseSoapMethodName()方法,如图: