Reproduction de la vulnérabilité de lecture de fichiers arbitraires de Tomcat, ID: CVE-2020-1938

Avant-propos: Tomcat-AJP

Insérez la description de l'image ici

Tomcat est
un projet central du projet de Jakarta de l' Apache Software Foundation , développé par Apache, Sun et d'autres sociétés et particuliers. Parce que Tomcat est avancé en technologie, stable en performances et gratuit, il est apprécié par les passionnés de Java et reconnu par certains développeurs de logiciels, devenant un serveur d'applications Web populaire.

AJP (Apache JServ Protocol) est un protocole de paquets dirigé. Pour des raisons de performances, le format binaire est utilisé pour transmettre du texte lisible. Le serveur WEB est connecté au conteneur SERVLET via une connexion TCP.

Numéro

Numéro CVE: CVE-
2020-1938 Numéro CNVD: CNVD-2020-10487

Affecter la version

tomcat 6
tomcat7 ~ 7.0.100
tomcat8 ~ 8.5.51
tomcat9 ~ 9.0.31

Profil de vulnérabilité

Cette vulnérabilité est une vulnérabilité d'inclusion de fichiers. Un attaquant peut créer un package de requête illicite pour utiliser cette vulnérabilité afin de lire n'importe quel fichier du répertoire webapp, comme les fichiers de configuration et le code source.
La plate-forme CNVD comptabilise la distribution du protocole Apache Tomcat AJP en Chine. Les résultats montrent que le nombre d'adresses IP en Chine est d'environ 555 000. Grâce à des tests techniques, il a été constaté qu'un total de 43197 serveurs en Chine étaient affectés par cette vulnérabilité, avec un taux d'impact d'environ 7,8%.

Réapparaître

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

1. Créez l'environnement

Insérez la description de l'image ici
Jetez un œil à la version
Insérez la description de l'image ici
. Le Tomcat utilisé ici est la version 8.5.32, et l'environnement est maintenant configuré.
Insérez la description de l'image ici
Créer un texte de test dans le répertoire Web par défaut (ROOT) et écrire des caractères de test

2. Fonctionnement

Ok, ce qui précède est prêt, commencez

Commande de lecture de fichier:

python tomcat.py read_file --webapp=ROOT /test.txt 127.0.0.1
Paramètre:

read_fileOpération (lecture du fichier) webappspécifié répertoire web /test.txtrépertoire de fichiers

Insérez la description de l'image ici

Lisez le fichier WEB-INF / web.xml
Insérez la description de l'image ici
, et c'est tout.
Utilisation de cas exp: https://github.com/hypn0s/AJPy

Solution

  1. Mettre à niveau vers une version sûre
  2. Désactivez temporairement le port de protocole AJP, mettez en commentaire <Connector port = "8009"
    protocol = "AJP / 1.3" redirectPort = "8443" /> dans le fichier de configuration conf / server.xml ou le pare-feu ajoute des restrictions de port AJP au réseau public Ouverte
  3. Configurer les attributs secretRequired et secret dans la configuration ajp pour limiter l'authentification

PEU

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

Informations connexes: https://www.cnvd.org.cn/webinfo/show/5415

Publié 6 articles originaux · aimé 0 · visites 275

Je suppose que tu aimes

Origine blog.csdn.net/heartsk/article/details/105452908
conseillé
Classement