文中主要讲解Tomcat漏洞,通过文中的漏洞步骤了解中间件漏洞原理;文中内容全由个人理解编制,若有错处,大佬勿喷,个人学艺不精;本文中提到的任何技术都源自于靶场练习,仅供学习参考,请勿利用文章内的相关技术从事非法测试,如因产生的一切不良后果与文章作者无关。
开启漏洞环境: 漏洞描述:Tomcat是Apache开源组织开发的用于处理HTTP服务的项目,两者都是免费的,都可以做为独立的Web服务器运行。Apache Tomcat服务器存在文件包含漏洞,攻击者可利用该漏洞读取或包含 Tomcat上所有 webapp 目录下的任意文件,如:webapp 配置文件或源代码等。
影响版本:
Apache Tomcat 6
Tomcat 7系列 <7.0.100
Tomcat 8系列 < 8.5.51
Tomcat 9 系列 <9.0.31
tomcat在接收ajp请求的时候调用org.apache.coyote.ajp.AjpProcessor来处理ajp消息,prepareRequest将ajp里面的内容取出来设置成request对象Attribute属性。可以通过此种特性从而可以控制request对象的下面三个Attribute属性
javax.servlet.include.request_uri javax.servlet.include.path_info javax.servlet.include.servlet_path
再通过控制ajp控制的上述三个属性来读取文件,通过操控上述三个属性从而可以读取到应用目录下的任何文件。
此漏洞直接使用payload攻击:
下载地址:
https://github.com/xindongzhuaizhuai/CVE-2020-1938
更新至安全版本。
关闭AJP服务,修改tomcat配置文件Service.xml.注释掉Connector port=“8009” protocol=“AJP/1.3” redirectPort=“8443” / 配置AJP中的secretRequired跟secret属性来限制认证。



