Tomcat的AJP连接器漏洞

作者: 迦叶_金色的人生_荣耀而又辉煌 | 来源:发表于2021-03-17 07:20 被阅读0次

    上一篇 <<<站在微服务架构对Tomcat进行性能调优
    下一篇 >>>DNS域名解析过程


    Tomcat服务器默认对外网开启该端口 Web客户访问Tomcat服务器的两种方式:


    AJP Connector,它使用的是 AJP 协议(Apache Jserv Protocol)是定向包协议。因为性能原因,使用二进制格式来传输可读性文本,它能降低 HTTP 请求的处理成本,因此主要在需要集群、反向代理的场景被使用。

    漏洞产生

    漏洞产生的主要位置在处理Ajp请求内容的地方
    org.apache.coyote.ajp.AbstractAjpProcessor.java#prepareRequest()
    对Ajp设置特定的属性,封装为request对象的Attribute属性然后继续走servlet的映射流程。 比如以下三个属性可以被设置
    javax.servlet.include.request_uri
    javax.servlet.include.path_info
    javax.servlet.include.servlet_path

    攻击方式

    a、利用DefaultServlet实现任意文件下载:当url请求未在映射的url列表里面则会通过tomcat默认的DefaultServlet会根据上面的三个属性来读取到/WEB-INF下面的所有敏感文件,不限于class、xml、jar等文件。
    b、通过jspservlet实现任意后缀文件包含:当url(比如http://xxx/xxx/xxx.jsp)请求映射在org.apache.jasper.servlet.JspServlet这个servlet的时候也可通过上述三个属性来控制访问的jsp文件,控制路径之后就可以以jsp解析该文件,所以只需要一个可控文件内容的文件即可实现rce.

    解决方案

    a、临时禁用AJP协议端口,在conf/server.xml配置文件中注释掉<Connector port="8009" protocol="AJP/1.3"redirectPort="8443" />
    b、配置ajp配置中的secretRequired跟secret属性来限制认证
    c、官方下载最新版下载地址


    推荐阅读:
    <<<Tomcat的底层架构模型
    <<<Tomcat启动流程说明
    <<<Tomcat8的四种部署方式
    <<<站在微服务架构对Tomcat进行性能调优

    相关文章

      网友评论

        本文标题:Tomcat的AJP连接器漏洞

        本文链接:https://www.haomeiwen.com/subject/mxmpxltx.html