网络安全信息安全

CVE-2019-0232 Tomcat远程代码执行漏洞

2019-06-21  本文已影响104人  vampire_hunter

该漏洞只存在于Windows下安装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 的Tomcat,由于使用enableCmdLineArguments在Windows上运行时,远程执行代码漏洞(CVE-2019-0232)驻留在公共网关接口(CGI)Servlet中,java运行时环境(JRE)将命令行参数传递给Windows的方式存在缺陷导致。但是默认情况下禁用了CGI Servlet,并且在Tomcat 9.0.x中默认情况下禁用了其选项enableCmdLineArguments,因此远程代码执行漏洞被评为中危。
要想复现环境需要修改tomcat安装目录中conf目录下的web.xml,内容如下

web.xml

还需要将servlet-mapping中的注释去掉,内容如下

servlet-mapping

最后将conf文件夹下的context.xml中context元素添加设置privileged="true",内容如下

context.xml

修改完成配置,然后在webapps下创建一个新的文件夹,并且在文件中新建一个WEB-INF文件夹,其中再创建一个cgi-bin目录,将xxx.bat文件写入到cgi-bin目录下,内容如下

xxx.bat

上述内容完成后,进入Tomcat的bin目录下,运行startup.bat,访问http://127.0.0.1:8080/

tomcat 页面

成功,尝试访问我们创建的xxx.bat文件

访问 bat

证明访问成功,文件存在。

使用poc进行测试
http://127.0.0.1:8080/test/cgi-bin/test.bat?&C%3a%5cwindows%5csystem32%5cipconfig

必须使用URL编码进行访问

返回结果如下


执行结果

利用成功

也可以使用GitHub上的python脚本进行测试,需要修改url_dir为自己的cgi文件位置。
https://github.com/jas502n/CVE-2019-0232/blob/master/CVE-2019-0232.py

CVE-2019-0232.py
上一篇下一篇

猜你喜欢

热点阅读