Reproducción de la vulnerabilidad de lectura de archivos arbitrarios de Tomcat, ID: CVE-2020-1938

Prólogo: Tomcat-AJP

Inserte la descripción de la imagen aquí

Tomcat es
un proyecto central en el proyecto de Yakarta de Apache Software Foundation , desarrollado por Apache, Sun y otras compañías e individuos. Debido a que Tomcat es avanzado en tecnología, estable en rendimiento y gratuito, es amado por los entusiastas de Java y reconocido por algunos desarrolladores de software, convirtiéndose en un popular servidor de aplicaciones web.

AJP (Protocolo Apache JServ) es un protocolo de paquete dirigido. Por razones de rendimiento, el formato binario se utiliza para transmitir texto legible. El servidor WEB está conectado al contenedor SERVLET a través de una conexión TCP.

Numero

Número CVE: CVE-
2020-1938 Número CNVD: CNVD-2020-10487

Versión afectada

tomcat 6
tomcat7 ~ 7.0.100
tomcat8 ~ 8.5.51
tomcat9 ~ 9.0.31

Perfil de vulnerabilidad

Esta vulnerabilidad es una vulnerabilidad de inclusión de archivos. Un atacante puede construir un paquete de solicitud malicioso para usar esta vulnerabilidad para leer cualquier archivo en el directorio de la aplicación web, como los archivos de configuración y el código fuente.
La plataforma CNVD cuenta la distribución del protocolo Apache Tomcat AJP en China. Los resultados muestran que la cantidad de IP en China es de aproximadamente 555,000. A través de pruebas técnicas, se descubrió que un total de 43197 servidores en China se vieron afectados por esta vulnerabilidad, con una tasa de impacto de aproximadamente 7.8%.

Reaparecer

复现过程在私人渗透测试环境下完成!

1. Construye el medio ambiente

Inserte la descripción de la imagen aquí
Eche un vistazo a la versión
Inserte la descripción de la imagen aquí
. El Tomcat utilizado aquí es la versión 8.5.32, y el entorno ya está configurado.
Inserte la descripción de la imagen aquí
Cree un texto de prueba en el directorio web predeterminado (ROOT) y escriba caracteres de prueba

2. Operación

Ok, lo anterior está listo, comienza

Leer comando de archivo:

python tomcat.py read_file --webapp=ROOT /test.txt 127.0.0.1
Parámetro:

read_fileOperación (de leer el archivo) webappdirectorio web especificado /test.txtdirectorio de archivos

Inserte la descripción de la imagen aquí

Lea el archivo WEB-INF / web.xml
Inserte la descripción de la imagen aquí
, y listo .
Uso de caso exp: https://github.com/hypn0s/AJPy

Solución

  1. Actualiza a una versión segura
  2. Deshabilite temporalmente el puerto del protocolo AJP, comente <Connector port = “8009”
    protocol = "AJP / 1.3" redirectPort = "8443" /> en el archivo de configuración conf / server.xml o el firewall agrega restricciones de puerto AJP a la red pública Abierto
  3. Configure los atributos secretRequired y secret en la configuración de ajp para limitar la autenticación

POCO

  1. https://github.com/0nise/CVE-2020-1938
  2. https://github.com/hypn0s/AJPy
  3. https://github.com/xindongzhuaizhuai/CVE-2020-1938

Información relacionada: https://www.cnvd.org.cn/webinfo/show/5415

Publicado 6 artículos originales · me gusta 0 · visitas 275

Supongo que te gusta

Origin blog.csdn.net/heartsk/article/details/105452908
Recomendado
Clasificación