由于Tomcat默认开启的AJP服务(8009端口)存在一处文件包含缺陷,攻击者可构造恶意的请求包进行文件包含操作,进而读取受影响Tomcat服务器上的Web目录文件。...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...Ghostcat $ python2 CNVD-2020-10487-Tomcat-Ajp-lfi.py -p 8009 -f WEB-INF/web.xml ?...YDHCUI/CNVD-2020-10487-Tomcat-Ajp-lfi ----
问题点: Tomcat 7使用AJP协议导致AJP对应端口被暴露给外网 环境: Linux(CentOS7) + Tomcat7 Step1:问题表现 Step2:问题分析 一般情况下AJP...协议不会发生非常频繁的通信协议错误问题, 当尝试从外网连接Tomcat的Ajp端口8009,telnet连接成功,说明端口被暴露给了外网 根据The AJP Connector中的介绍说明(address
0x01 漏洞简介 Tomcat 服务器作一个免费的开放源代码的Web 应用服务器,其安装后会默认开启ajp连接器,方便与其他web服务器通过ajp协议进行交互。...CVE-2020-1938漏洞是由于Tomcat AJP协议存在缺陷而导致,攻击者利用该漏洞可通过构造特定参数,读取服务器webapp下的任意文件,例如可以读取 webapp 配置文件或源代码。...vulhub/tomcat/CVE-2020-1938 sudo docker-compose up -d 环境启动后,访问http://your-ip:8080即可查看tomcat默认页面,此时通过AJP...0x03 漏洞利用 目前,在网上已经公布了该漏洞的POC: https://github.com/YDHCUI/CNVD-2020-10487-Tomcat-Ajp-lfi 将POC下载到本地,使用如下命令读取...WEB-INF/web.xml文件: python CNVD-2020-10487-Tomcat-Ajp-lfi.py 192.168.126.130 -p 8009 -f WEB-INF/web.xml
American journal of psychiatry, 2017:appi. ajp. 2017.17040469
0x00:前言 Apache Tomcat会开启AJP连接器,方便与其他Web服务器通过AJP协议进行交互。由于Tomcat本身也内含了HTTP服务器,因此也可以视作单独的Web服务器。...www.cnvd.org.cn/flaw/show/CNVD-2020-10487 2、referer: https://github.com/YDHCUI/CNVD-2020-10487-Tomcat-Ajp-lfi
前言在Java Web应用开发中,Tomcat作为广泛使用的Servlet容器,经常与Apache HTTP Server结合使用,以提供高效、稳定的Web服务。...本文将详细解析AJP协议以及如何使用AJP Connector。...="AJP/1.3" redirectPort="8443"/>这里,元素指定了AJP连接器的相关参数:port="8009":AJP连接器的监听端口号。...Tomcat的AJP端口。...测试AJP连接是否成功,可以通过浏览器或其他工具向Tomcat服务器发送AJP请求,并检查请求是否成功处理。
本篇文章主要针对于Apache Tomcat Ajp(CVE-2020-1938)漏洞进行源码分析和漏洞利用,顺便通过这个漏洞来学习JAVA代码审计。...AJP13协议介绍 AJP的全程是Apache JServ Protocol,支持AJP协议的Web容器包括Apache Tomcat,JBoss AS / WildFly和GlassFish。...AJP协议。... java java.org.apache.catalina.servlets.DefaultServlet.java文件中的doGet方法,因为协议走的Get请求。
0x00 前言 Apache Struts是美国阿帕奇(Apache)软件基金会负责维护的一个开源项目,是一套用于创建企业级Java Web 应用的开源MVC框架,主要提供两个版本框架产品
AJP 协议 根据 apache 官网 AJP 协议相关介绍: The original document was written by Dan Milstein, danmil@shore.net on...说完了 AJP13 的来龙去脉,接着,进入主题。 SpringBoot 为什么这么火?...SpringBoot 对 AJP 协议的支持 通过阅读 tomcat-embed-core 组件,说明嵌入式 tomcat 是支持 AJP 协议的,相关代码在 org.apache.coyote.ajp...但是奇怪的是,在 SpringBoot 的 yml 文件配置中,并没有找到 ajp 协议相关的 server 参数配置。 笔者猜测,虽然 Tomcat 集成了 ajp 协议,但是不推荐使用吧。...所以在 tomcat 服务器接收 ajp 请求时, 由 AjpProcessor 来处理 ajp 真实的 request 请求消息。
07-Jan-2020 22:34:30.342 SEVERE [ajp-nio-8009-exec-2] org.apache.coyote.ajp.AjpMessage.processHeader...-2020 22:34:30.390 SEVERE [ajp-nio-8009-exec-4] org.apache.coyote.ajp.AjpMessage.processHeader Invalid...(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java...at java.lang.Thread.run(Thread.java:748) 07-Jan-2020 22:34:30.414 SEVERE [ajp-nio-8009-exec-6] org.apache.coyote.ajp.AjpMessage.processHeader...-2020 22:34:30.418 SEVERE [ajp-nio-8009-exec-8] org.apache.coyote.ajp.AjpMessage.processHeader Invalid
连接器,方便与其他Web服务器通过AJP协议进行交互.但Apache Tomcat在AJP协议的实现上存在漏洞,导致攻击者可以通过发送恶意的AJP请求,可以读取或者包含Web应用根目录下的任意文件,如果配合文件上传任意格式文件...,将可能导致任意代码执行(RCE).该漏洞利用AJP服务端口实现攻击,未开启AJP服务对外不受漏洞影响(tomcat默认将AJP服务开启并绑定至0.0.0.0/0)....默认端口为8080,处理http请求,而AJP默认端口8009,用于处理 AJP 协议的请求,而AJP比http更加优化,多用于反向、集群等,漏洞由于Tomcat AJP协议存在缺陷而导致,攻击者利用该漏洞可通过构造特定参数...(new java.io.InputStreamReader(Runtime.getRuntime().exec("whoami").getInputStream())).readLine());%>...kali的ip 2、kali 开启NC nc -lvvp 9999 3、下载EXP https://github.com/DXask88MA/Weblogic-CVE-2023-21839 执行命令 java
Apache Tomcat会开启AJP连接器,方便与其他Web服务器通过AJP协议进行交互。由于Tomcat本身也内含了HTTP服务器,因此也可以视作单独的Web服务器。...如果想看漏洞具体详情,传送门:【WEB安全】Tomcat-Ajp协议漏洞分析 漏洞修复建议 1:临时禁用AJP协议端口,在conf/server.xml配置文件中注释掉 AJP/1.3"redirectPort="8443" /> 2:配置ajp配置中的secretRequired跟secret属性来限制认证 3:官方下载最新版下载地址...tomcat.apache.org/download-90.cgi Github下载:https://github.com/apache/tomcat/releases 参考文章:【WEB安全】Tomcat-Ajp
/ javax.servlet.include.path_info: code.txt javax.servlet.include.servlet_path: / code.txt内容如下 <% java.util.List... commands = new java.util.ArrayList(); commands.add("/bin/bash"); commands.add("-c"...); commands.add("/Applications/Calculator.app/Contents/MacOS/Calculator"); java.lang.ProcessBuilder...pb = new java.lang.ProcessBuilder(commands); pb.start(); %> 发送AJP请求,请求的是/docs/test.jsp这个jsp,但是由于那三个...AJP在Apache HTTP服务器中是以模块的形式实现的,表示为mod_jk或mod_proxy_ajp。AJP本身并不会暴露到外部,这也是下一部分要讨论的RCE场景的先决条件之一。 ?
还有一个连接器叫做AJP,AJP主要是用来和web服务器进行通信用的,因为AJP协议的速度要比HTTP的快,所以AJP除了用来和其他webserver进行通信之外,还可以通过AJP来构建tomcat集群...:使用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:AJP + APR 讲下他们的区别,BIO就是block IO是最最基础的IO方式, 我们通过这样来配置...New IO是基于java.nio包及其子包的一种IO方式。能提供非阻塞IO方式,比传统的BIO拥有与更加高效的运行效率。.../configure --with-apr=/usr/bin/apr-1-config \ --with-java-home=/home/jfclere/JAVA/jdk1.7.0
整合Apache和Tomcat,使得Java工程和PHP工程都能共用80端口,访问网站时,无需在地址栏中加端口号,具体实现如下,感兴趣的朋友可以参考下哈 目的: 整合Apache和Tomcat,使得Java...JkMount /servlet/* ajp13 #Send all files under MyProject for to worker named ajp13 JKMount /MyProject...ajp13 3、在/apache/conf目录下新建文件workers.properties worker.list=ajp13 worker.ajp13.port=8009 worker.ajp13....host=localhost worker.ajp13.type=ajp13 worker.ajp13.lbfactor=1 4、修改/conf/httpd.conf Listen 80改为Listen...端口号(8009不可修改,若这一句被注释掉了,取消注释) AJP/1.3" redirectPort="8443" /> III.检查<
#此处的ajp13是workers.properties文件中的worker.list配置的值,一定要写的一样,否则会报错 JkMount /*.jsp ajp13 JkMount /*.do ajp13...内容如下: worker.ajp13.port= 8009 worker.ajp13.host= 127.0.0.1 worker.ajp13.type= ajp13 worker.ajp13.lbfactor..." import="java.util.*"%> ::this is tomcat's jsp page Now,the time&date is : <%out.println(new Date())... #在apache服务器下创建jsp文件 vi /usr/local/apache2/htdocs/test/showtime.jsp #输入如下内容 java..." import="java.util.*"%> ::this is apache's jsp page Now,the time&date is : <%out.println(new Date())
http://archive.apache.org/dist/tomcat/ https://github.com/apache/tomcat/releases 下载完成之后,放置在任意目录下,并安装好Java...AJP连接器可以通过AJP协议和另一个web容器进行交互。它监听8009端口,负责和其他的HTTP服务器建立连接。在把Tomcat与其他HTTP服务器集成时,就需要用到这个连接器。...AJP连接器可以通过AJP协议和一个web容器进行交互。 默认情况下,tomcat配置完成后,在conf/server.xml文件中AJP connector服务在8009端口监听 ?...如未使用Tomcat AJP协议: 如未使用 Tomcat AJP 协议,可以直接将 Tomcat 升级到 9.0.31、8.5.51或 7.0.100 版本进行漏洞修复。...如果使用了Tomcat AJP协议: 建议将Tomcat立即升级到9.0.31、8.5.51或7.0.100版本进行修复,同时为AJP Connector配置secret来设置AJP协议的认证凭证。
因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。...由长亭科技安全研究员发现的存在于 Tomcat中的安全漏洞,由于 Tomcat AJP协议设计上存在缺陷,攻击者通过 Tomcat AJP Connector可以读取或包含 Tomcat上所有 webapp...漏洞原理 Tomcat 配置了两个Connecto,它们分别是 HTTP 和 AJP :HTTP默认端口为8080,处理http请求,而AJP默认端口8009,用于处理 AJP 协议的请求,而AJP比http...tomcat在接收ajp请求的时候调用org.apache.coyote.ajp.AjpProcessor来处理ajp消息,prepareRequest将ajp里面的内容取出来设置成request对象的...,会根据RFC 3875来从Url参数中生成命令行参数,并把参数传递至Java的 Runtime 执行。
主页说明安装和整合成功 JkMount /*.Ubuntu jsp平台 ajp13_worker JkMount /*/servlet/ ajp13_worker 中的两个 “ajp13..._worker worker.ajp13_worker.port=8009 worker.ajp13_worker.host=localhost worker.ajp13_worker.type=...ajp13 worker.ajp13_worker.lbfactor=1 worker.loadbalancer.balanced_workers=ajp13_worker 在修改/etc/apache2...-5.0.6.tar.gz) tar zxvf mysql-connector-java-5.0.6.tar.gz 3.配置连接文件 将刚刚展开的mysql-connector-java-5.0.6 中的...mysql-connector-java-5.0.6-bin.jar文件拷贝到上面安装的jdk 和 tomcat下的lib文件夹中 cd mysql-connector-java-5.0.6 cp
领取专属 10元无门槛券
手把手带您无忧上云