这篇文章给大家介绍如何进行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
VMware 虚拟机 windows 7
JDK 1.8.0_73
Apache tomcat 9.0.13
首先安装JDK(我这里用的jdk_1.8.0_241)然后配置环境变量
下载符合版本的Tomcat安装包 https://archive.apache.org/dist/tomcat/
下载JDK,准备配置环境
1、安装jdk 随意选择目录,如果没有特殊要求直接默认完成安装即可
2、安装jre→更改→ \java 之前目录和安装 jdk 目录相同即可
3、安装完JDK后配置环境变量 计算机→属性→高级系统设置→高级→环境变量
变量值填写jdk的安装目录
我的路径是C:\Program Files\Java\jdk1.8.0_241
5、系统变量→寻找 Path 变量→编辑
在变量值最后输入 %JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;
变量值填写 .;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar
首先修改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>
(2)将此处注释删除
apache-tomcat-9.0.13\conf\ context.xml
<Context>添加privileged="true"语句 如下图
环境搭建完成!
查看搭建tomcat主机的ip
扫描端口
看到开放了8080端口和8009端口,证明存在此漏洞。
Poc地址:
传送门
可以成功访问文件,漏洞复现成功!
1、禁用AIP协议端口,在conf/server.xml配置文件中注释掉<Connector port="8009"
protocol="AJP/1.3"redirectPort="8443"/>
2、升级官方最新版本。
关于如何进行Apache Tomcat远程代码执行漏洞CVE-2020-1938复现就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。