Avant-propos: Tomcat-AJP
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
Jetez un œil à la version
. Le Tomcat utilisé ici est la version 8.5.32, et l'environnement est maintenant configuré.
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_file
Opération (lecture du fichier) webapp
spécifié répertoire web /test.txt
répertoire de fichiers
Lisez le fichier WEB-INF / web.xml
, et c'est tout.
Utilisation de cas exp: https://github.com/hypn0s/AJPy
Solution
- Mettre à niveau vers une version sûre
- 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- Configurer les attributs secretRequired et secret dans la configuration ajp pour limiter l'authentification
PEU
- https://github.com/0nise/CVE-2020-1938
- https://github.com/hypn0s/AJPy
- https://github.com/xindongzhuaizhuai/CVE-2020-1938
Informations connexes: https://www.cnvd.org.cn/webinfo/show/5415