问题点: Tomcat 7使用AJP协议导致AJP对应端口被暴露给外网 环境: Linux(CentOS7) + Tomcat7 Step1:问题表现 Step2:问题分析 一般情况下AJP...协议不会发生非常频繁的通信协议错误问题, 当尝试从外网连接Tomcat的Ajp端口8009,telnet连接成功,说明端口被暴露给了外网 根据The AJP Connector中的介绍说明(address
0x00:前言 Apache Tomcat会开启AJP连接器,方便与其他Web服务器通过AJP协议进行交互。由于Tomcat本身也内含了HTTP服务器,因此也可以视作单独的Web服务器。...0x01:编号 CNVD-2020-10487 CVE-2020-1938 0x02:影响 Apache Tomcat = 6 7 <= Apache Tomcat <...7.0.100 8 <= Apache Tomcat < 8.5.51 9 <= Apache Tomcat < 9.0.31 ?...www.cnvd.org.cn/flaw/show/CNVD-2020-10487 2、referer: https://github.com/YDHCUI/CNVD-2020-10487-Tomcat-Ajp-lfi
本篇文章主要针对于Apache Tomcat Ajp(CVE-2020-1938)漏洞进行源码分析和漏洞利用,顺便通过这个漏洞来学习JAVA代码审计。...AJP13协议介绍 AJP的全程是Apache JServ Protocol,支持AJP协议的Web容器包括Apache Tomcat,JBoss AS / WildFly和GlassFish。...AJP协议。..." xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0...此处用debug模式打开tomcat image.png 根据网上大部分的文章所提到的那样,我们先找到org.apache.coyote.ajp.AjpProcessor这个类,通过IDEA中自带的find
而AJP Connector(Apache JServ Protocol Connector)作为连接Tomcat和Apache HTTP Server的重要桥梁,扮演着至关重要的角色。...AJP协议简介AJP(Apache JServ Protocol)是一种二进制协议,设计初衷是为了提高Apache HTTP Server与Tomcat Servlet容器之间的通信效率。...在Apache HTTP Server中的配置为了使Apache HTTP Server能够通过AJP协议与Tomcat通信,通常需要使用mod_jk或mod_proxy_ajp模块。...以mod_proxy_ajp为例,Apache的配置可能如下所示:apache复制代码ProxyPass / ajp://localhost:8009...结论AJP Connector是Tomcat与Apache HTTP Server之间通信的重要桥梁,通过AJP协议实现了高效的请求和响应传递。
0x00 前言 Apache Struts是美国阿帕奇(Apache)软件基金会负责维护的一个开源项目,是一套用于创建企业级Java Web 应用的开源MVC框架,主要提供两个版本框架产品...报头的RCE攻击,直接获取应用系统所在服务器的控制权限,进而控制网站服务器 0x03 修复建议 1、升级版本: 请升级至Struts2安全版本 Struts 2.3.32:https://cwiki.apache.org.../confluence/display/WW/Version+Notes+2.3.32 Struts 2.5.10.1:https://cwiki.apache.org/confluence/display
Apache Tomcat会开启AJP连接器,方便与其他Web服务器通过AJP协议进行交互。由于Tomcat本身也内含了HTTP服务器,因此也可以视作单独的Web服务器。...= Apache Tomcat < 8.5.51 9 <= Apache Tomcat < 9.0.31 漏洞复现 由于太菜,这里直接用POC复现。...如果想看漏洞具体详情,传送门:【WEB安全】Tomcat-Ajp协议漏洞分析 漏洞修复建议 1:临时禁用AJP协议端口,在conf/server.xml配置文件中注释掉 2:配置ajp配置中的secretRequired跟secret属性来限制认证 3:官方下载最新版下载地址...:【WEB安全】Tomcat-Ajp协议漏洞分析
由于Tomcat默认开启的AJP服务(8009端口)存在一处文件包含缺陷,攻击者可构造恶意的请求包进行文件包含操作,进而读取受影响Tomcat服务器上的Web目录文件。...影响范围 Apache Tomcat 6 Apache Tomcat 7 < 7.0.100 Apache Tomcat 8 < 8.5.51 Apache Tomcat 9 < 9.0.31 环境搭建...EXP收集 https://github.com/YDHCUI/CNVD-2020-10487-Tomcat-Ajp-lfi https://github.com/0nise/CVE-2020-1938
AJP Connector:监听8009端口,负责和其他的HTTP服务器建立连接,通过AJP协议和另一个Web容器进行交互。...Tomcat会开启AJP连接器,方便与其他Web服务器通过AJP协议进行交互。...而Tomcat服务器8009端口上的AJP协议存在漏洞,攻击者可利用该漏洞读取或包含Tomcat上所有webapp目录下的任意文件,如:webapp配置文件或源代码等 影响版本 Apache Tomcat...6 Apache Tomcat 7 < 7.0.100 Apache Tomcat 8 < 8.5.51 Apache Tomcat 9 < 9.0.31 漏洞复现 靶场搭建 这里使用Docker部署环境...-从源代码比对到漏洞利用 Apache-Tomcat-Ajp漏洞(CVE-2020-1938)漏洞复现 工具 hypn0s/AJPy 00theway/Ghostcat-CNVD-2020-10487
0x01 漏洞简介 Tomcat 服务器作一个免费的开放源代码的Web 应用服务器,其安装后会默认开启ajp连接器,方便与其他web服务器通过ajp协议进行交互。...CVE-2020-1938漏洞是由于Tomcat AJP协议存在缺陷而导致,攻击者利用该漏洞可通过构造特定参数,读取服务器webapp下的任意文件,例如可以读取 webapp 配置文件或源代码。...影响范围 Apache Tomcat 6 Apache Tomcat 7 < 7.0.100 Apache Tomcat 8 < 8.5.51 Apache Tomcat 9 < 9.0.31 0x02...vulhub/tomcat/CVE-2020-1938 sudo docker-compose up -d 环境启动后,访问http://your-ip:8080即可查看tomcat默认页面,此时通过AJP...WEB-INF/web.xml文件: python CNVD-2020-10487-Tomcat-Ajp-lfi.py 192.168.126.130 -p 8009 -f WEB-INF/web.xml
二、影响版本 1、Apache Tomcat 9.x < 9.0.31 2、Apache Tomcat 8.x < 8.5.51 3、Apache Tomcat 7.x < 7.0.100 4、Apache...Tomcat 6.x 三、漏洞分析 3.1 AJP Connector Apache Tomcat服务器通过Connector连接器组件与客户程序建立连接,Connector表示接收请求并返回响应的端点...Connector,它使用的是 AJP 协议(Apache Jserv Protocol)是定向包协议。...客户访问Tomcat服务器的两种方式: 3.2 代码分析 漏洞产生的主要位置在处理Ajp请求内容的地方org.apache.coyote.ajp.AbstractAjpProcessor.java#prepareRequest...Tomcat 服务器 AJP 进行通信 早在 1 月初,长亭科技向 Apache Tomcat 官方提交漏洞。
2月14日,Apache Tomcat 官方发布安全更新版本,修复漏洞。...漏洞影响范围包括 Apache Tomcat 6 Apache Tomcat 7 < 7.0.100 Apache Tomcat 8 < 8.5.51 Apache Tomcat 9 < 9.0.31...0X2 环境搭建 在官方网站上下载源码 http://archive.apache.org/dist/tomcat/ https://github.com/apache/tomcat/releases...AJP连接器可以通过AJP协议和一个web容器进行交互。 默认情况下,tomcat配置完成后,在conf/server.xml文件中AJP connector服务在8009端口监听 ?...如果使用了Tomcat AJP协议: 建议将Tomcat立即升级到9.0.31、8.5.51或7.0.100版本进行修复,同时为AJP Connector配置secret来设置AJP协议的认证凭证。
07-Jan-2020 22:34:30.342 SEVERE [ajp-nio-8009-exec-2] org.apache.coyote.ajp.AjpMessage.processHeader...org.apache.coyote.ajp.AjpMessage.processHeader Invalid message received with signature [18245] 07-Jan...-2020 22:34:30.390 SEVERE [ajp-nio-8009-exec-4] org.apache.coyote.ajp.AjpMessage.processHeader Invalid...message received with signature [5635] 07-Jan-2020 22:34:30.400 SEVERE [ajp-nio-8009-exec-5] org.apache.coyote.ajp.AjpMessage.processHeader...[18245] 07-Jan-2020 22:34:30.416 SEVERE [ajp-nio-8009-exec-7] org.apache.coyote.ajp.AjpMessage.processHeader
如果支持APR: 1、HTTP/1.1:org.apache.cotote.http11.Http11AprProtocol 2、AJP/1.3:org.apache.coyote.ajp.AjpAprProtocol...如果不支持APR: HTTP/1.1: org.apache.coyote.http11.Http11Protocol AJP/1.3:...org.apache.jk.server.JkCoyoteHandler 2、连接器协议 Tomcat的Web服务器连接器支持两种协议:AJP和HTTP,它们均定义了以二进制格式在Web服务器和...AJP(Apache JServ Protocol)协议: 目前正在使用的AJP协议的版本是通过JK和JK2连接器提供支持的AJP13,它基于二进制的格式在Web服务器和Tomcat之间传输数据...,而此前的版本AJP10和AJP11则使用文本格式传输数据。
7 < 7.0.100 Apache Tomcat 8 < 8.5.51 Apache Tomcat 9 < 9.0.31 不受影响版本 Apache Tomcat = 7.0.100 Apache Tomcat...官方下载链接: 版本号 下载地址 Apache Tomcat 7.0.100 http://tomcat.apache.org/download-70.cgi Apache Tomcat 8.5.51...http://tomcat.apache.org/download-80.cgi Apache Tomcat 9.0.31 http://tomcat.apache.org/download-90.cgi...一:若不需要使用Tomcat AJP协议,可直接关闭AJP Connector,或将其监听地址改为仅监听本机localhost。...二:若需使用Tomcat AJP协议,可根据使用版本配置协议属性设置认证凭证。 使用Tomcat 7和Tomcat 9的用户可为AJP Connector配置secret来设置AJP协议的认证凭证。
Tomcat 6 Apache Tomcat 7 < 7.0.100 Apache Tomcat 8 < 8.5.51 Apache Tomcat 9 < 9.0.31 该漏洞主要由AJP连接器引起,连接器是...上面两个图,分别就是HTTP协议的Connector和AJP的Connector,默认情况下Tomcat通过8009端口监听AJP协议的Connector,启动Tomcat,查看监听端口,这两个端口都是监听外网的...修复建议: 1、从利用过程看,必须要连接AJP端口8009,所以可以通过防火墙禁用该端口访问 2、如果未使用AJP协议,可直接将ajp的Connector注释掉 3、通过配置ajp的secretRequired...和secret属性来限制认证 4、升级到官方最新版本,下载地址如下: https://tomcat.apache.org/download-70.cgi https://tomcat.apache.org.../download-80.cgi https://tomcat.apache.org/download-90.cgi 或Github下载:https://github.com/apache/tomcat
:用于处理 HTTP 协议的请求(HTTP/1.1),默认监听地址为 0.0.0.0:8080 AJP Connector:用于处理 AJP 协议的请求(AJP/1.3),默认监听地址为 0.0.0.0...而 AJP Connector,它使用的是 AJP 协议(Apache Jserv Protocol),AJP 协议可以理解为 HTTP 协议的二进制性能优化版本,它能降低 HTTP 请求的处理成本,因此主要在需要集群...攻击者可以先向服务端上传一个内容含有恶意 JSP 脚本代码的文件(上传的文件本身可以是任意类型的文件,比如图片、纯文本文件等),然后利用 Ghostcat 漏洞进行文件包含,从而达到代码执行的危害 哪些版本的受到影响 Apache...Tomcat 9.x < 9.0.31 Apache Tomcat 8.x < 8.5.51 Apache Tomcat 7.x < 7.0.100 Apache Tomcat 6.x 什么情况下可以被利用...对于处在漏洞影响版本范围内的 Tomcat 而言,若其开启 AJP Connector 且攻击者能够访问 AJP Connector 服务端口的情况下,即存在被 Ghostcat 漏洞利用的风险
影响范围 Apache Tomcat 9.x < 9.0.31 Apache Tomcat 8.x < 8.5.51 Apache Tomcat 7.x < 7.0.100 Apache Tomcat...而 AJP Connector,它使用的是 AJP 协议(Apache Jserv Protocol),AJP 协议可以理解为 HTTP 协议的二进制性能优化版本,它能降低 HTTP 请求的处理成本,因此主要在需要集群...AJP是Apache Tomcat web服务器用来与servlet容器通信的一个二进制协议。主要用于集群或逆向代理场景,其中web服务器与应用服务器或servelet容器进行通信。...简单来说,就是HTTP Connector暴露给客户端了,AJP是webserver (如Apache HTTPD)和Apache Tomcat服务器之间内部使用的,如下图所示。...AJP在Apache HTTP服务器中是以模块的形式实现的,表示为mod_jk或mod_proxy_ajp。AJP本身并不会暴露到外部,这也是下一部分要讨论的RCE场景的先决条件之一。 ?
一种是 HTTP connector, 一种是AJP connector。 HTTP connector大家应该很好理解,它也是tomcat默认使用的连接器。...还有一个连接器叫做AJP,AJP主要是用来和web服务器进行通信用的,因为AJP协议的速度要比HTTP的快,所以AJP除了用来和其他webserver进行通信之外,还可以通过AJP来构建tomcat集群...web server打交道 org.apache.coyote.ajp.AjpProtocol:使用AJP协议的连接器,实现与web server(如Apache httpd)之间的通信 org.apache.coyote.ajp.AjpNioProtocol...:SJP协议+ New IO org.apache.coyote.ajp.AjpNio2Protocol:SJP协议+ New IO2 org.apache.coyote.ajp.AjpAprProtocol...APR和Tomcat Native apr的全称是Apache Portable Runtime,它是一个高度可移植的库,它是Apache HTTP Server 2.x的核心。
------------------------------------------------------------------------------ AJP(Apache JServer Protocol...服务器接收到客户请求时,它会通过jk过滤URL,jk根据预先配置好的URL映射信息,决定是否把请求转发给Tomcat处理 而jk是通过AJP协议实现apache与tomcat之间通讯的,AJP协议是为Tomcat...与HTTP服务器之间通信而定制的协议,能够提供较高的通信速度和效率 ajp12已经废弃了,目前在用的是1.3版本的协议,ajpv13协议是面向包的 Web服务器和Servlet容器通过TCP连接来交互,...协议通信的效率要高于HTTP协议 1)ajp采用长连接,保持了Tomcat与HTTP服务器的通信,减少了建立TCP连接的开销 2)ajp采用一定的协议格式,减少了传递报文的数据大小,节省了带宽 ----...0)Apache的安装过程详见 http://www.linuxidc.com/Linux/2014-09/107342.htm 1)修改/app/apache/conf/httpd.conf文件
二、影响版本 1、Apache Tomcat 9.x < 9.0.31 2、Apache Tomcat 8.x < 8.5.51 3、Apache Tomcat 7.x < 7.0.100 4、Apache...Tomcat 6.x 三、漏洞分析 3.1 AJP Connector Apache Tomcat服务器通过Connector连接器组件与客户程序建立连接,Connector表示接收请求并返回响应的端点...Connector,它使用的是 AJP 协议(Apache Jserv Protocol)是定向包协议。...客户访问Tomcat服务器的两种方式: 3.2 代码分析 漏洞产生的主要位置在处理Ajp请求内容的地方org.apache.coyote.ajp.AbstractAjpProcessor.java#prepareRequest...,Ajp13并没有转发远程端口,但是接受转发的数据作为远程端口。
领取专属 10元无门槛券
手把手带您无忧上云