Smi1e@卫兵实验室
漏洞分析
Apache Httpd < 2.4.54
Tomcat最主要的功能是提供Servlet/JSP容器,尽管它也可以作为独立的Java Web服务器,它在对静态资源(如HTML文件或图像文件)的处理速度,以及提供的Web服务器管理功能方面都不如其他专业的HTTP服务器,如IIS和Apache服务器。因此在实际应用中,常常把Tomcat与其他HTTP服务器集成。
AJP13
是一个二进制的TCP传输协议,相比HTTP这种纯文本的协议来说,效率和性能更高,也做了很多优化。显然,浏览器并不能直接支持AJP13协议,只支持HTTP协议。所以实际情况是,通过Apache的 proxy_ajp
模块进行反向代理,暴露成 HTTP
协议给客户端访问。而Apache此时的作用就是将HTTP协议解析成AJP协议反代给Tomcat AJP协议端口。AJP协议中包含4种基本数据类型: Byte、Boolean、Integer、String
。
其中 Byte
和 Boolean
为1个字节,Integer
为两个字节,无符号整数,高位字节在前,String
类型为可变长字符串,最大长度为2的16次方。编码时首先将长度打包成两个字节,然后是字符串(包括终止符