CVE-2020-1938

Ghostcat Tomcat Ajp漏洞复现(CVE-2020-1938)

最近的新漏洞,复现一下。

漏洞介绍

漏洞简介
Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。
由于Tomcat默认开启的AJP服务(8009端口)存在一处文件包含缺陷,攻击者可构造恶意的请求包进行文件包含操作,进而读取受影响Tomcat服务器上的Web目录文件。
https://cve.mitre.org/cgi-bin/cvename.cgi?name=2020-1938

影响范围
Apache Tomcat 6
Apache Tomcat 7 < 7.0.100
Apache Tomcat 8 < 8.5.51
Apache Tomcat 9 < 9.0.31

漏洞原理

Tomcat 配置了两个Connecto,它们分别是 HTTP 和 AJP :HTTP默认端口为8080,处理http请求,而AJP默认端口8009,用于处理 AJP 协议的请求,而AJP比http更加优化,多用于反向、集群等,漏洞由于Tomcat AJP协议存在缺陷而导致,攻击者利用该漏洞可通过构造特定参数,读取服务器webapp下的任意文件以及可以包含任意文件,如果有某上传点,上传图片马等等,即可以获取shell。

docker基本命令

docker run ubuntu:15.10 /bin/echo “Hello world”

  • docker: Docker 的二进制执行文件。
  • run: 与前面的 docker 组合来运行一个容器。
  • ubuntu:15.10 指定要运行的镜像,Docker 首先从本地主机上查找镜像是否存在,如果不存在,Docker 就会从镜像仓库 Docker Hub 下载公共镜像。
  • /bin/echo “Hello world”: 在启动的容器里执行的命令

docker run -i -t ubuntu:15.10 /bin/bash

1
root@0123ce188bd8:/#

  • -t: 在新容器内指定一个伪终端或终端。
  • -i: 允许你对容器内的标准输入 (STDIN) 进行交互。

docker run -d ubuntu:15.10 /bin/sh -c “while true; do echo hello world; sleep 1; done”

1
2b1b7a428627c51ab8810d541d759f072b4fc75487eed05812646b8534a2fe63

-d参数:后台运行容器,并返回容器ID。

可以通过docker stop停止。

使用docker安装Tomcat

337thV.jpg

38tsl4.jpg

启动镜像

38wDsg.jpg

38w6ds.jpg

38wxyD.jpg

漏洞复现

3G2HLq.jpg

3G2OoT.jpg

3GRSSJ.jpg

3GRiex.jpg

遇到的问题

问题:docker拖取镜像速度及其缓慢,换成中科大的源无解

解决:修改或新增 /etc/docker/daemon.json( sudo vim /etc/docker/daemon.json ),加入如下内容

{

“registry-mirrors”: [“http://hub-mirror.c.163.com"]

}

systemctl restart docker.service

文章目录
  1. 1. Ghostcat Tomcat Ajp漏洞复现(CVE-2020-1938)
    1. 1.1. 漏洞介绍
    2. 1.2. 漏洞原理
    3. 1.3. docker基本命令
    4. 1.4. 使用docker安装Tomcat
    5. 1.5. 启动镜像
    6. 1.6. 漏洞复现
    7. 1.7. 遇到的问题
,