Tomcat AJP 文件包含漏洞复现(CVE-2020-1938)
漏洞原理
Tomcat配置了两个Connecto,它们分别是HTTP和AJP。
HTTP默认端口为8080,处理http请求;AJP默认端口8009,用于处理 AJP 协议的请求。
AJP比http更加优化,多用于反向、集群等,漏洞由于Tomcat AJP协议存在缺陷而导致,攻击者利用该漏洞可通过构造特定参数,读取服务器webapp下的任意文件以及可以包含任意文件,如果有某上传点,上传图片马等等,即可以获取shell。
AJP Connector
Apache Tomcat服务器通过Connector连接器组件与客户端程序建立连接,Connector表示接收请求并返回响应的端点,即Connector组件负责接收客户的请求,以及把Tomcat服务器的响应结果发送给客户。
在Apache Tomcat服务器中我们平时用的最多的8080端口,就是所谓的Http Connector,使用Http(HTTP/1.1)协议,在 conf/server.xml 文件里Ajp协议对应的配置为
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
Tomcat服务器默认对外网开启该端口,Web客户访问Tomcat服务器的两种方式:

漏洞环境搭建
进入vulhub-master/tomcat/CVE-2020-1938目录下,docker环境启动
docker-compose up -d
- 使用nmap,扫描目标指定8009端口,表示漏洞环境搭建成功
nmap -p 8009 192.168.2.147

漏洞环境复现
webapp任意文件读取
可以成功读取web.xml文件内容
python2 CNVD-2020-10487-Tomcat-Ajp-lfi.py 192.168.2.147 -p 8009 -f WEB-INF/web.xml

任意文件包含
漏洞攻击流量分析
1、Wireshark抓取poc获取web.xml内容流量

2、跟踪流,服务器返回结果如下

漏洞影响版本
Apache Tomcat 6
Apache Tomcat 7 < 7.0.100
Apache Tomcat 8 < 8.5.51
Apache Tomcat 9 < 9.0.31
漏洞修复措施
1、在servce.xml中注释AJP,或者绑定到localhost
2、升级无漏洞版本
3、Tomcat 7和Tomcat 9可为AJP Connector配置secret来设置AJP协议的认证凭证。
4、Tomcat 8的可为AJP Connector配置requiredSecret来设置AJP协议的认证凭证。
EXP
参考链接
CSDN-Tomcat AJP 文件包含漏洞(CVE-2020-1938)
CSDN-Tomcat AJP文件包含漏洞解析
Tomcat AJP 文件包含漏洞(CVE-2020-1938) 修复方案 (含Apache2 ajp 负载如何修复)
先知社区-Tomcat Ajp协议文件包含漏洞分析
声明
严禁读者利用以上介绍知识点对网站进行非法操作 , 本文仅用于技术交流和学习 , 如果您利用文章中介绍的知识对他人造成损失 , 后果由您自行承担 , 如果您不能同意该约定 , 请您务必不要阅读该文章 , 感谢您的配合 !
Tomcat AJP 文件包含漏洞复现(CVE-2020-1938)的更多相关文章
- Aapache Tomcat AJP 文件包含漏洞(CVE-2020-1938)
受影响版本 Apache Tomcat 6 Apache Tomcat 7 < 7.0.100 Apache Tomcat 8 < 8.5.51 Apache Tomcat 9 < ...
- CVE-2018-12613-phpmyadmin4.8.1远程文件包含漏洞复现
CVE-2018-12613-phpmyadmin4.8.1远程文件包含漏洞复现 参考文章1 参考文章2 By:Mirror王宇阳 漏洞原理 攻击者利用发现在服务器上包含(查看和潜在执行)文件的漏洞. ...
- 易酷CMS2.5本地文件包含漏洞复现
易酷CMS是一款影片播放CMS.该CMS2.5版本存在本地文件包含漏洞.我们可以利用这个漏洞,让其包含日志文件,然后再利用报错信息将一句话木马写入日志中.然后利用文件包含漏洞包含该日志文件,再用菜刀连 ...
- 骑士CMS<6.0.48 模板注入文件包含漏洞复现及遇到的坑
1.坑 payload:variable=1&tpl=<?php phpinfo(); ob_flush();?>/r/n<qscms/company_show 列表名=&q ...
- phpmyadmin 4.8.1 远程文件包含漏洞(CVE-2018-12613)
漏洞详情 范围 phpMyAdmin 4.8.0和4.8.1 原理 首先在index.php 50-63行代码 $target_blacklist = array ( 'import.php', 'e ...
- CVE-2018-12613phpMyAdmin 后台文件包含漏洞分析
一. 漏洞背景 phpMyAdmin 是一个以PHP为基础,以Web-Base方式架构在网站主机上的MySQL的数据库管理工具,让管理者可用Web接口管理MySQL数据库.借由此Web接口可以成 ...
- Tomcat文件包含漏洞的搭建与复现:CVE-2020-1938
Tomcat文件包含漏洞的搭建与复现:CVE-2020-1938 漏洞描述 2020年2月20日,国家信息安全漏洞共享平台(CNVD)发布了Apache Tomcat文件包含漏洞(CNVD-2020- ...
- Apache Tomcat 文件包含漏洞(CVE-2020-1938)
2月20日,国家信息安全漏洞共享平台(CNVD)发布了Apache Tomcat文件包含漏洞(CNVD-2020-10487/CVE-2020-1938).该漏洞是由于Tomcat AJP协议存在缺陷 ...
- Apache Tomcat文件包含漏洞紧急修复
Tomcat 漏洞 tomcat有漏洞, 需要升级到9.0.31 https://cert.360.cn/warning/detail?id=849be16c6d2dd909ff56eee7e26ae ...
随机推荐
- 皕杰报表:连接数据库失败,请检查数据源配置(oracle.jdbc.driver.OracleDriver)
皕杰报表:连接数据库失败,请检查数据源配置(oracle.jdbc.driver.OracleDriver)问题解决: 缺少了classes12.jar 在窗口--首选项--报表运行时配置--添加-- ...
- DateDiff() 方法语法 T-SQL语法
表达式DateDiff(timeinterval,date1,date2 [, firstdayofweek [, firstweekofyear]]) 允许数据类型: timeinterval 表示 ...
- FrameworkElementFactory中的SetBinding与SetValue
public static Microsoft.Windows.Controls.DataGridColumn CreateDateColumn(string path, string header) ...
- Linux运维学习第六周记
四月上夏渐热 善疗也须调摄 文殊眼裹抽筋 金刚脑后拔楔 网络的世界让人变得不那么真实! 第六周学记 用了一周的时间学习了计算机网络基础知识,说是基础,更应该说是必备的常识! 网络的协议和管理 TCP/ ...
- 蒲公英 · JELLY技术周刊 Vol.26: 请问您这个月要来点肝么?
蒲公英 · JELLY技术周刊 Vol.26 今年的十月,不知道大家在 TODO List 上新增了多少条目准备尝鲜,你可能已经准备了 Vue3.Webpack5 以及 React v17.0 RC, ...
- UI设计学习总结
UI设计学习总结 平面设计基础 平面构成 三大构成:点线面 重复构成 相同,有规律的重复 近似构成 形状,大小,色彩,肌理相似 渐变构成 色彩逐渐变化 发射构成 通过一点向四周扩散犹如绽放的花朵 密集 ...
- R语言学习-(金融数据获取和简单的分析)
利用R语言中的quantmod包和fBasics对股票数据的获取和简要的分析, 通过获取的数据进行典型图像绘制,使用JB正态性检验来检验是否服从于正态分布. 前提概要:quantmod 包默认是访问 ...
- mysql自动化建表脚本
主脚本 配置文件 执行结果 主脚本内容 由于在awk中用常规方法无法转译单引号,所以用了单引号的八进制编码进行转译代替\047 等价于 ' [root@hadoop01 data]# cat crea ...
- java的“同一”与“相等”
变量:引用(指向地址) + 值(该变量指向值所储存的那一片内存) 两个变量同一 : 判断 是否 这两个变量指向同一片内存. 两个变量相等 : 判断 是否 这两个变量的类型相同,且值相等. 注:常用的& ...
- Java学习的第二十八天
1.Scanner类 序列化 将实体类标注为可序列化 2.不明白 3.明天学习反序列化,transient关键字,序列化一组对象