如何进行Apache Tomcat远程代码执行漏洞CVE-2020-1938复现

这篇文章给大家介绍如何进行Apache Tomcat远程代码执行漏洞CVE-2020-1938复现,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

漏洞简介:

Apache Tomcat是Java Servlet,JavaServer Pages,Java Expression Language和WebSocket技术的开源实现。 Tomcat提供了可以在其中运行Java代码的“纯Java” HTTP Web服务器环境。 最近,Apache Tomcat修复了一个漏洞(CVE-2020-1938),该漏洞使攻击者可以读取任何webapps文件(例如webapp配置文件,源代码等)或包括一个文件来远程执行代码。由于Tomcat默认开启的AJP服务(8009端口)存在一处文件包含缺陷,攻击者可构造恶意的请求包进行文件包含操作,进而读取受影响Tomcat服务器上的Web目录文件。

威胁类型

文件包含、远程代码执行

威胁等级

漏洞编号

CVE-2020-1938受影响系统及应用版本

apache tomcat 6

apache tomcat 7 < 7.0.100

apache tomcat 8 < 8.5.51

apache tomcat 9 < 9.0.31

漏洞复现:

1、搭建环境

VMware 虚拟机 windows 7

JDK 1.8.0_73

Apache tomcat 9.0.13

2、复现步骤

首先安装JDK(我这里用的jdk_1.8.0_241)然后配置环境变量

下载符合版本的Tomcat安装包 https://archive.apache.org/dist/tomcat/

下载JDK,准备配置环境

如何进行Apache Tomcat远程代码执行漏洞CVE-2020-1938复现

1、安装jdk 随意选择目录,如果没有特殊要求直接默认完成安装即可

2、安装jre→更改→ /java 之前目录和安装 jdk 目录相同即可

3、安装完JDK后配置环境变量  计算机→属性→高级系统设置→高级→环境变量

 如何进行Apache Tomcat远程代码执行漏洞CVE-2020-1938复现

4、系统变量→新建 JAVA_HOME 变量 。

变量值填写jdk的安装目录

 如何进行Apache Tomcat远程代码执行漏洞CVE-2020-1938复现

我的路径是C:/Program Files/Java/jdk1.8.0_241

5、系统变量→寻找 Path 变量→编辑

在变量值最后输入 %JAVA_HOME%/bin;%JAVA_HOME%/jre/bin;

 如何进行Apache Tomcat远程代码执行漏洞CVE-2020-1938复现

6、系统变量→新建 CLASSPATH 变量

变量值填写  .;%JAVA_HOME%/lib;%JAVA_HOME%/lib/tools.jar如何进行Apache Tomcat远程代码执行漏洞CVE-2020-1938复现

7、检验是否配置成功 运行cmd 输入 java -version若如图所示 显示版本信息 则说明安装和配置成功。如何进行Apache Tomcat远程代码执行漏洞CVE-2020-1938复现

8、在上述网址中下载Tomcat,下载好安装包之后,进入bin目录执行startup.bat启动tomcat。

 如何进行Apache Tomcat远程代码执行漏洞CVE-2020-1938复现

如何进行Apache Tomcat远程代码执行漏洞CVE-2020-1938复现

9、访问http://localhost:8080

 如何进行Apache Tomcat远程代码执行漏洞CVE-2020-1938复现

 10、修改配置文件

首先修改apache-tomcat-9.0.13/conf/ web.xml

(1)将此段注释删除,并添加红框内代码。

 <init-param>
    <param-name>enableCmdLineArguments</param-name>
    <param-value>true</param-value>
</init-param>
<init-param>
    <param-name>executadle</param-name>
    <param-value></param-value>
</init-param>

 如何进行Apache Tomcat远程代码执行漏洞CVE-2020-1938复现

 (2)将此处注释删除

如何进行Apache Tomcat远程代码执行漏洞CVE-2020-1938复现

11、然后更改

apache-tomcat-9.0.13/conf/ context.xml

 <Context>添加privileged="true"语句 如下图

 如何进行Apache Tomcat远程代码执行漏洞CVE-2020-1938复现

 环境搭建完成!

 12、使用nmap对tomcat的开放端口进行扫描

 查看搭建tomcat主机的ip

 如何进行Apache Tomcat远程代码执行漏洞CVE-2020-1938复现

 扫描端口

如何进行Apache Tomcat远程代码执行漏洞CVE-2020-1938复现

看到开放了8080端口和8009端口,证明存在此漏洞。

13、在CMD执行环境,python环境为2.7

Poc地址:

传送门

如何进行Apache Tomcat远程代码执行漏洞CVE-2020-1938复现

可以成功访问文件,漏洞复现成功!

2、修复建议

1、禁用AIP协议端口,在conf/server.xml配置文件中注释掉<Connector port="8009"

protocol="AJP/1.3"redirectPort="8443"/>

2、升级官方最新版本。

关于如何进行Apache Tomcat远程代码执行漏洞CVE-2020-1938复现就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

原创文章,作者:3628473679,如若转载,请注明出处:https://blog.ytso.com/tech/safety/220567.html

(0)
上一篇 2022年1月2日 23:23
下一篇 2022年1月2日 23:42

相关推荐

发表回复

登录后才能评论