midnightCTF-2026

FORENSICS - Dukes DBar

2026-03-16medium#forensics#grafana#cve#sql-injection#log-analysis

On nous fournit une base de données et un fichier log Grafana. L'objectif est de trouver :

  • Le CVE utilisé
  • Le chemin du fichier volé
  • L'adresse IP de l'attaquant
  • Le nom d'utilisateur compromis

Identification du CVE

En début de fichier log, on repère la version de Grafana utilisée : 11.0.0.

Une recherche sur le NIST révèle le CVE-2024-9264 (CVSS 9.4) — une vulnérabilité permettant des injections de commandes SQL via l'intégration DuckDB, exploitable par tout compte avec des permissions Viewer ou supérieures.

Un PoC est disponible : github.com/nollium/CVE-2024-9264, qui utilise la fonction read_blob() pour lire des fichiers arbitraires :

SELECT content FROM read_blob("./conf/ldap.toml")

Recherche dans les logs

On cherche les occurrences de read_blob dans les logs :

grep -i "read_blob" grafana.log

Deux résultats :

SELECT content FROM read_blob('/etc/passwd')
SELECT content FROM read_blob('/var/lib/grafana/ctf/secret.csv')

Le fichier volé est /var/lib/grafana/ctf/secret.csv.

Identification de l'attaquant

On recherche le userID autour de l'heure de l'attaque (10:20) :

grep -i "userId" grafana.log | grep "10:20" | head -10

On obtient :

logger=auth t=2025-12-02T10:20:37.781848356Z level=debug msg="User auth token created" tokenID=4 userID=5 clientIP=85.215.144.254

On croise le userID=5 avec la base de données fournie :

5|0|editor2|editor2@ctf.local|editor2...

Flag

ÉlémentValeur
CVECVE-2024-9264
Fichier volé/var/lib/grafana/ctf/secret.csv
IP attaquant85.215.144.254
Utilisateureditor2