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
gitlab-rce-demo — Démo autonome d'exploitation d'une RCE GitLab tirant parti de deux bugs de corruption mémoire Ruby dans le parser Oj via le rendu de diffs de notebooks. | Kitploit
Outils/GitHubGitHub/wupco/gitlab-rce-demo
ExploitationExploitation d'Applications WebExploitation de BinairesLabs et Pratique
GitHubwupco/gitlab-rce-demo

gitlab-rce-demo

Démo autonome d'exploitation d'une RCE GitLab tirant parti de deux bugs de corruption mémoire Ruby dans le parser Oj via le rendu de diffs de notebooks.

Voir le dépôt
94221il y a 26 joursVérifié par Kitploit

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

Démo RCE GitLab Oj

Ce dépôt contient une démo autonome de la chaîne RCE notebook-diff de GitLab décrite dans nos recherches. Il démarre un conteneur GitLab 18.11.3 vierge, crée un utilisateur ordinaire via l’interface HTTP publique, puis exécute le PoC contre cette instance.

Détails techniques : En profondeur : obtenir une RCE GitLab via deux vulnérabilités de corruption mémoire de Ruby

Prérequis

  • Linux sur x86-64 (amd64)
  • Docker Engine avec Docker Compose v2
  • Bash, Python 3, curl, Git, iproute2 et netcat

Exécuter la démo

Tout d’abord, construisez un environnement GitLab vierge :

root@kitploit:~
./setup_env.sh

Cette commande supprime le conteneur de démonstration précédent et ses volumes, démarre GitLab, attend qu’il soit prêt, puis crée un utilisateur normal. Un démarrage à froid de GitLab peut prendre plusieurs minutes.

Ouvrez deux terminaux. Lancez le listener de callback dans le premier :

root@kitploit:~
./run_poc.sh listen 4555

Exécutez l’exploit dans le second :

root@kitploit:~
./run_poc.sh exploit 4555

Lorsque le callback arrive, passez au terminal du listener et exécutez des commandes comme id ou whoami. Le temps de recherche ASLR varie d’une exécution à l’autre.

Exécution de la démo réussie

Comment cela fonctionne

GitLab affiche les diff de notebooks Jupyter en transmettant du JSON contrôlé par le dépôt à Oj, un parseur JSON natif en Ruby. La chaîne combine deux bugs du parseur : l’un corrompt l’état du parseur et finit par contrôler un pointeur de callback, tandis que l’autre divulgue un pointeur de tas (heap) utilisé pour réduire la recherche ASLR. Le PoC charge une table de correspondance précalculée, trouve l’agencement de bibliothèque correspondant via des requêtes HTTP GitLab normales, puis fait en sorte que le worker Puma se reconnecte au listener en tant qu’utilisateur git.

Utilisez cette démo uniquement dans l’environnement de laboratoire local inclus.

Télécharger l’outil