打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
【WEB安全】Tomcat-Ajp协议漏洞分析

一、漏洞描述

Apache Tomcat服务器存在文件包含漏洞,攻击者可利用该漏洞读取或包含 Tomcat 上所有 webapp 目录下的任意文件,如:webapp 配置文件或源代码等。

二、漏洞危害等级

        高

三、影响版本

文件包含漏洞影响以下版本:

  • 7.*分支7.0.100之前版本,建议更新到7.0.100版本;

  • 8.*分支8.5.51之前版本,建议更新到8.5.51版本;

  • 9.*分支9.0.31之前版本,建议更新到9.0.31版本。




四、漏洞原理

tomcat默认的conf/server.xml中配置了2个Connector,一个为8080的对外提供的HTTP协议端口,另外一个就是默认的8009 AJP协议端口,两个端口默认均监听在外网ip。

如下图:

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

然后封装成对应的request之后,继续走servlet的映射流程如下图所示:

其中具体的映射方式就简略了,具体可以自己查看代码.

五、两种利用方式:

1、利用DefaultServlet实现任意文件下载

当url请求未在映射的url列表里面则会通过tomcat默认的DefaultServlet会根据上面的三个属性来读取文件,如下图

通过serveResource方法来获取资源文件

通过getRelativePath来获取资源文件路径

然后再通过控制ajp控制的上述三个属性来读取文件,通过操控上述三个属性从而可以读取到/WEB-INF下面的所有敏感文件,不限于class、xml、jar等文件。

2、通过jspservlet实现任意后缀文件包含

当url(比如http://xxx/xxx/xxx.jsp)请求映射在org.apache.jasper.servlet.JspServlet这个servlet的时候也可通过上述三个属性来控制访问的jsp文件如下图:

控制路径之后就可以以jsp解析该文件 所以只需要一个可控文件内容的文件即可实现rce.

六、利用成功截图

七、解决方案

1、临时禁用AJP协议端口,在conf/server.xml配置文件中注释掉<Connector port='8009' protocol='AJP/1.3'redirectPort='8443' />

2、配置ajp配置中的secretRequired跟secret属性来限制认证

3、官方下载最新版下载地址:

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/releases


八、AJP协议规范

详见https://tomcat.apache.org/connectors-doc/ajp/ajpv13a.html

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Tomcat爆出高危漏洞!
Tomcat爆出严重漏洞,影响所有版本,附解决方案!(扩散!!!)
Tomcat AJP协议漏洞分析与利用
漏洞修复建议大全
apache2.2和tomcat5.5整合
Windows下Apache HTTPD与Tomcat的整合 - - JavaEye技术网...
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服