漏洞复现-Tomcat AJP 文件包含漏洞(CVE-2020-1938)

漏洞原理

该漏洞是由于Tomcat AJP协议存在缺陷导致,攻击者利用该漏洞可通过构造特定参数,读取服务器webapp下的任意文件。若目标服务器同时存在文件上传功能,攻击者可进一步实现远程代码执行。目前,厂商已发布新版本完成漏洞修复。

复现环境

在ubuntu 16.04虚拟机中用vulhub靶场提供的docker容器来复现

jdk版本1.7

Tomcat版本9.0.30

影响版本

Apache Tomcat 6

Apache Tomcat 7 < 7.0.100

Apache Tomcat 8 < 8.5.51

Apache Tomcat 9 < 9.0.31

复现过程

1. 进入vulhub目录:tomcat/CVE-2020-1938

2.启动docker容器,tomcat页面正常访问:

看下server.xml中AJP协议的相关配置,目前是打开的,端口号8009:

使用推荐的漏洞利用工具(https://github.com/YDHCUI/CNVD-2020-10487-Tomcat-Ajp-lfi)读取web.xml:

防御实验

在不升级版本的情况下,直接关闭AJP Connector:

重启Tomcat,再试着读取web.xml,读取失败:

 

原文地址:https://www.cnblogs.com/sallyzhang/p/12357669.html

时间: 2024-08-30 11:50:05

漏洞复现-Tomcat AJP 文件包含漏洞(CVE-2020-1938)的相关文章

漏洞复现 - Tomcat任意文件上传漏洞(CVE-2017-12615)

漏洞原理 Tomcat配置文件web.xml中,servlet配置了readonly=fasle时,会引发任意文件上传漏洞. readonly参数默认是true,即不允许delete和put操作,所以通过XMLHttpRequest对象的put或者delete方法访问就会报告http 403错误.但很多时候为了支持REST服务,会设置该属性为false. 复现环境 在ubuntu 16.04虚拟机中用vulhub靶场提供的docker容易来复现 jdk版本1.7 Tomcat版本8.5.19 复

漏洞复现 - ActiveMQ任意文件写入漏洞(CVE-2016-3088)

漏洞原理 fileserver是Apache ActiveM提供的一个RESTful API接口,可通过GET.PUT.DELETE等HTTP请求对文件进行读写操作,设计目的是为了弥补消息队列操作不能传输.存储二进制文件的缺陷,在文件操作过程中出现了任意文件读写漏洞. 影响版本 5.12.x之前的版本. 复现环境 将ActiveMQ部署在MAC上,使用版本为apache-activemq-5.11.1,JDK版本为1.7 复现过程 启动ActiveMQ,并尝试上传jsp木马,返回401,上传时失

Apache Tomcat AJP协议高危漏洞风险提示

关于Apache Tomcat存在文件包含漏洞的安全公告 2020年1月6日,国家信息安全漏洞共享平台(CNVD)收录了由北京长亭科技有限公司发现并报送的Apache Tomcat文件包含漏洞(CNVD-2020-10487,对应CVE-2020-1938).攻击者利用该漏洞,可在未授权的情况下远程读取特定目录下的任意文件.目前,漏洞细节尚未公开,厂商已发布新版本完成漏洞修复. 一.漏洞情况分析 Tomcat是Apache软件基金会Jakarta 项目中的一个核心项目,作为目前比较流行的Web应

PHP文件包含漏洞攻防实战(allow_url_fopen、open_basedir)

摘要 PHP是一种非常流行的Web开发语言,互联网上的许多Web应用都是利用PHP开发的.而在利用PHP开发的Web应用中,PHP文件包含漏洞是一种常见的漏洞.利用PHP文件包含漏洞入侵网站也是主流的一种攻击手段.本文对PHP文件包含漏洞的形成.利用技巧及防范进行了详细的分析,并通过一个真实案例演示了如何利用PHP文件包含漏洞对目标网站进行渗透测试,最终成功获取到网站的WebShell. 1. PHP文件包含漏洞介绍 首先,我们来介绍下何为文件包含漏洞.严格来说,文件包含漏洞是“代码注入”的一种

网站安全(7) —— PHP文件包含漏洞介绍

其原理就是注入一段用户能控制的脚本或代码,并让服务端执行.文件包含漏洞可能出现在JSP.PHP. ASP等语言中,原理都是一样的,本文只介绍PHP文件包含漏洞. 要想成功利用文件包含漏洞进行攻击,需要满足以下两个条件: 1. Web应用采用include()等文件包含函数通过动态变量的方式引入需要包含的文件 (文件包含函数还有 include_once().require().require_once()) 2. 用户能够控制该动态变量 现在来看一段简单的文件包含代码: ? 1 2 3 <?ph

10_文件包含漏洞(属于任意代码执行)

一.背景介绍 随着网站业务的需求,web脚本可能允许客户端用户输入控制动态包含在服务器端的文件,会导致恶意代码的执行及敏感信息泄露,主要包括本地文件包含和远程文件包含两种形式. 二.漏洞成因 文件包含漏洞的产生原因是在通过引入文件时,引用的文件名,用户可控,由于传入的文件名没有经过合理的校验,或者校验被绕过,从而操作了预想之外的文件,就可能导致意外的文件泄露甚至恶意的代码注入.当被包含的文件在服务器本地时,就形成的本地文件包含漏洞.被包含的文件在第三方服务器时,就形成了远程文件包含漏洞. 本地到

文件包含漏洞进阶篇

前言: 文件包含漏洞虽然在前面已经说过,但是感觉还不到火候.这次在度 深入了解. 目录: 本地文件包含漏洞的进阶 远程文件包含漏洞 正文: 进入之后选择文件包含漏洞,如下图所示 [图一] 进去一看,明显的文件包含漏洞. 尝试包含本地存在的phpinfo.php 使用file协议进行包含 使用php协议进行base64编码读取 windows特别多毛病 php输入 url编码 原来:/etc/passwd 编码之后:%2f..%2f..%2f..%2f..%2f..%2fetc%2fpasswd

web安全原理-文件包含漏洞

前言 起来吃完早饭就开始刷攻防世界的题,一个简单的文件包含题我竟然都做不出来我服了  拿出买的书开始从头学习总结文件包含漏洞! 一.文件包含漏洞 文件包含漏洞 文件包含函数的参数没有经过过滤或者严格的定义,并且参数可以被用户控制,这样就可能包含非预期文件.如果文件中存在恶意代码,无论文件是什么类型,文件内的恶意代码都会被解析并执行. 文件包含漏洞肯能会造成服务器网页被篡改.网站被挂马.服务器被远程控制.被安装后门等危害. 常见的文件包含函数: 1.include() 包含并运行制定文件.在出错时

Pikachu-File Inclusion(文件包含漏洞)

File Inclusion(文件包含漏洞)概述 文件包含,是一个功能.在各种开发语言中都提供了内置的文件包含函数,其可以使开发人员在一个代码文件中直接包含(引入)另外一个代码文件. 比如 在PHP中,提供了:include(),include_once()require(),require_once()这些文件包含函数,这些函数在代码设计中被经常使用到. 大多数情况下,文件包含函数中包含的代码文件是固定的,因此也不会出现安全问题. 但是,有些时候,文件包含的代码文件被写成了一个变量,且这个变量