ApacheTomcatAJP文件包含漏洞(CVE-2020-1938)

ApacheTomcat是领先的Java中间件服务器之一,在世界各地广泛使用。
然而,长亭科技安全研究人员发现的Ghostcat漏洞存在于Tomcat的AJP协议中,存在严重的安全风险。
该漏洞允许攻击者通过TomcatAJPConnector读取或包含Tomcat上所有Web应用程序目录中的任意文件,包括配置文件和Web应用程序源代码,甚至在目标应用程序具有文件上传功能时使用包含文件远程执行代码。

为了检查该漏洞的影响,可以使用以下环境进行复现:

目标机器IP:192.168.1.137攻击机器IP:192.168

访问目标。
机器主页:

192.168.1.137:8080/

使用X射线等检测工具。

尝试读取8009端口下的web.xml文件:

执行读取操作验证漏洞是否存在。

该文件包含getshell操作:

利用Metasploit生成Java木马。

将木马文件复制到Tomcat目录下,模拟shell.txt下载行为。

启用Metasploit进行监控。

进入shell.txt,触发文件包含,进行远程代码执行。

显示并获取反弹shell,完成攻击过程。

TomcatSession(CVE-2020-9484)反序列化复现

ApacheTomcat远程代码执行风险分析ApacheTomcat是一款开源Web应用服务器,主要实现了JavaEE规范中的Servlet和JSP,并提供HTTP服务。
它是一种广泛使用的JavaWeb容器。
1999年由SunMicrosystems开发,2005年捐赠给ASF(Apache软件基金会),现在是一个独立的顶级项目。
Tomcat为中小型系统和低并发访问提供高效的服务,适合初学者开发和调试JSP程序。
它作为Apache服务器的扩展运行一个独立的进程,并具有轻量级应用服务器功能。
CVE-2020-9484:Tomcat反序列化漏洞。
2020年5月20日,Apache官方公布了Tomcat远程代码执行风险,漏洞编号为CVE-2020-9484。
Tomcat使用内置会话同步功能时存在该漏洞。
如果配置不当(没有使用EncryptInterceptor),攻击者可以通过精心构造数据包,利用内置的会话同步对Tomcat服务器发起攻击。
成功利用该漏洞必须满足四个条件:攻击者可以控制服务器文件内容和名称;服务器使用FileStore进行持久化;sessionAttributeValueClassNameFilter配置不当,允许攻击者提供反序列化对象;攻击者知道FileStore存储位置和攻击可控文件的相对路径。
受影响的版本ApacheTomcat版本包括:10.0.0-M1至10.0.0-M4、9.0.0.M1至9.0.34、8.5.0至8.5.54以及7.0.0至7.0.103。
源码分析根据配置分析Tomcat源码。
以Tomcat10.0.0-M4为例,重点关注FileStore的load方法。
该方法首先将sessionid转换为文件对象并检查文件是否存在。
如果存在,则读取文件内容。
文件对象添加了“.session”后缀,但未验证目录路径。
当文件存在时,系统运行CustomObjectInputStream来获取gadget类并执行反序列化操作。
环境设置要安装Tomcat,需要Java8环境。
具体安装教程请参见相关链接。
下载Tomcat10.0.0-M4,创建tomcat目录,并解压文件。
编辑conf目录下的context.xml文件添加Manager配置。
下载groovy-2.3.9.jar并将其放在lib目录中。
执行wget命令下载依赖,并运行catalina.sh启动Tomcat。
访问ip:8080确认安装成功。
为了重现该漏洞,请使用ysoserial生成Java反序列化payload,并执行java命令生成payload文件。
将包含攻击性JSESSIONID值的cookie添加到浏览器。
或者直接通过curl命令加载恶意会话持久化文件。
执行ls/tmp查看结果。
修复方法包括升级Tomcat版本、配置WAF过滤器或避免使用FileStore来修复此漏洞。
免责声明:本项目仅供安全人员完成授权项目测试和学习交流,不涉及漏洞利用或攻击行为。
使用时请遵守当地法律法规,避免未经授权的测试。

ApacheTomcat/Jboss远程代码执行漏洞怎样解决

打开Tomcat根目录下的/conf/server.xml,找到如下配置节,修改如下: