Leakvent 6: Der Bundesgerichtshof

Bis zum 39C3 öffne ich täglich ein Türchen zu den langweiligsten Datenlecks der letzten Jahre. Es geht um .git, .env, exponierte dev-Umgebungen und andere technisch langweilige Ursachen. Aber manchmal ist interessant, was sich hinter einem Türchen verbirgt. Alle Türchen sind hier zu finden.

Im Januar 2024 meldeten wir eine SQL Injection in den Entscheidungsdatenbanken von Bundesgerichtshof und Bundespatentgericht. Die Lücke wurde wahrscheinlich geschlossen, bestand aber im August 2025 wieder.

Ein Parameter des Login-Formulars (BGH, andere Gerichte analog) war anfällig für eine Time-based SQL Injection. Darüber konnte auf mehrere Datenbanken zugegriffen werden. Passwörter der Nutzer*innen wurden lediglich mit dem veralteten md5-Hashverfahren gehasht und konnten wiederhergestellt werden.

Damit konnte auf den internen Bereich der Entscheidungsdatenbanken zugegriffen werden, ohne die SQL Injection zu bemühen. So hätten Entscheidungen verändert, gelöscht oder auch neu erstellt werden können.

Außerdem erlaubt eine Funktion des Portals das Auflisten von Inhalten von server-seitigen Verzeichnissen, bspw. /etc/. Durch das Verändern von URL-Parametern konnte das Parsing von PDF-Dateien beeinflusst werden. Es wurde aber nicht versucht, eine Shell hochzuladen.

Leakvent 5: Vevor

Bis zum 39C3 öffne ich täglich ein Türchen zu den langweiligsten Datenlecks der letzten Jahre. Es geht um .git, .env, exponierte dev-Umgebungen und andere technisch langweilige Ursachen. Aber manchmal ist interessant, was sich hinter einem Türchen verbirgt. Alle Türchen sind hier zu finden.

Über viele Monate waren 2022 bei dem Baumarkt-Temu Vevor über die Zeit immer mehr und schließlich fast 800 Gigabyte Logs einsehbar. Ein Elasticsearch erlaubte unter wechselnden IP-Adressen bei AWS anonymen Zugang.

Indices: 309, document count: 1496535116, size: 797.9 GB
Found index goods-2022.11.10 with 37131622 documents (13.4 GB)
Found index risk-2022.11.08 with 579851 documents (216.2 MB)
Found index risk-2022.11.09 with 562293 documents (207.3 MB)
Found index goods-2022.11.11 with 40573566 documents (14.7 GB)
Found index goods-2022.11.12 with 37160357 documents (12.1 GB)
Found index goods-2022.11.13 with 34469876 documents (11.9 GB)
Found index risk-2022.11.07 with 598158 documents (224.6 MB)
Found index vevor-pc-2022.11.08 with 68842 documents (53.3 MB)
Found index vevor-pc-2022.11.07 with 78280 documents (60.3 MB)
Found index vevor-pc-2022.11.09 with 75443 documents (57.0 MB)
Found index .opendistro-reports-instances with 0 documents (208 B)
Found index data-gateway-lua-access-2022.11.05 with 4604008 documents (1.4 GB)
Found index email-marketing-2022.11.13 with 306537 documents (334.7 MB)
...

Einzelne Einträge zeigen bspw, wer was wohin bestellt hat.

[INFO]2022-07-1202:30:01.789[DubboServerHandler-10.20.29.145:20992-thread-6]INFOc.v.pay.channel.util.ApiCallUtils-[62ccdca8e4b01fd5208ea9e7]ApiCallUtil.callPaypalresponse:TOKEN=EC-0461416764794954C&
BILLINGAGREEMENTACCEPTEDSTATUS=0&
CHECKOUTSTATUS=PaymentActionNotInitiated&
TIMESTAMP=2022-07-12T02:30:01Z&
...
SHIPTONAME=##VORNAME## ##NACHNAME## &
SHIPTOSTREET=##STRASSE##&
SHIPTOSTREET2=##STRASSE##&
SHIPTOCITY=Hamburg&
SHIPTOSTATE=Hamburg&
SHIPTOZIP=21029&
SHIPTOCOUNTRYCODE=DE&
SHIPTOPHONENUM=*&
SHIPTOCOUNTRYNAME=Germany&
ADDRESSSTATUS=Confirmed&
CURRENCYCODE=EUR&
AMT=56.99&
...
L_NAME0=4L Wasser Destilliergerät Wasserfilter Wasserdestillier Innenteil aus Edelstahl&
...

Auch die Bayerische Datenschutzbehörde wurde informiert. Ob diese tätig wurde oder Betroffene von Vevor informiert wurden, ist unklar. Klar ist aber, dass auch andere die Daten gefunden haben: {"@timestamp": "2099-11-15T13:12:00", "message": "All indexs has been dropped. But we backup all indexs. The only method of recoveribing database is to pay 0.021 BTC. Transfer to this BTC address 14UCEfQG5vs7kZAbFrcZ7K4BCiEa48mdFu . You can buy bitcoin here, does not take much time to buy https://localbitcoins.com or https://buy.moonpay.io/ . After paying write to me in the mail with your DB IP: recmydata@onionmail.org and you will receive a link to download your database dump.\n"}

Leakvent 4: Plenar TV Niedersachsen

Bis zum 39C3 öffne ich täglich ein Türchen zu den langweiligsten Datenlecks der letzten Jahre. Es geht um .git, .env, exponierte dev-Umgebungen und andere technisch langweilige Ursachen. Aber manchmal ist interessant, was sich hinter einem Türchen verbirgt. Alle Türchen sind hier zu finden.

  1. Unter https://landtag-niedersachsen-tv.im-en.com/.git/ befand sich 2021 ein git-Repository. Dort lag Quellcode des Plenar-TV:

./config/config.php
./connect.php
./index2dash_ohneredner.php
./index2dash.php
./index2.php
./index.php
./modules/cms.php
./modules/cutVideo.php
./modules/onlineCutterDash.php
./modules/onlineCutter.php
./modules/test.php
./Mustache/Autoloader.php

  1. In der Datei connect.php sind gültige mysql-Zugangsdaten enthalten.
    $con=mysqli_connect("127.0.0.1","landtag-hannover",█████████████,"█████████████");
  2. Unter https://landtag-niedersachsen-tv.im-en.com/.gitignore befand sich ein Hinweis auf den Pfad https://landtag-niedersachsen-tv.im-en.com/voddb/. Dort lag ein phpMyAdmin. So konnten die mysql-Zugangsdaten genutzt werden, obwohl der mysql-Server selbst nicht direkt von außen erreichbar war.

Leakvent 3: Emma Matratze

Bis zum 39C3 öffne ich täglich ein Türchen zu den langweiligsten Datenlecks der letzten Jahre. Es geht um .git, .env, exponierte dev-Umgebungen und andere technisch langweilige Ursachen. Aber manchmal ist interessant, was sich hinter einem Türchen verbirgt. Alle Türchen sind hier zu finden.

Unter http://www.admin.emma-matratze.de/ leakte ein git-Repository, das neben Quellcode auch gültige Zugangsdaten enthielt:

==> cron/██████████.php <==
<?php
require_once '██████.php';
// todo put to system configuration

$hostname = '{imap-mail.outlook.com:993/ssl}MC';
$username = '██████@bettzeit.com';
$password = '██████████████';

Das Kontaktformular unter https://www.emma-matratze.de/kontakt/ hat meine Meldung blockiert: “Sorry, you have been blocked
You are unable to access emma-matratze.de
“, auch meine E-Mail wurde offenbar ignoriert. Die Zugangsdaten sind nach mehr als drei Jahren noch immer gültig.

Leakvent 2: Die Partei

Bis zum 39C3 öffne ich täglich ein Türchen zu den langweiligsten Datenlecks der letzten Jahre. Es geht um .git, .env, exponierte dev-Umgebungen und andere technisch langweilige Ursachen. Aber manchmal ist interessant, was sich hinter einem Türchen verbirgt. Alle Türchen sind hier zu finden.

Weiter geht es mit der Partei Die Partei. Die Entwicklungsumgebung eines Webshops für Parteibedarf mit aktiviertem Symfony Profiler war 2022 offen zugänglich.

The profiler is a powerful development tool that gives detailed information about the execution of any request.

Never enable the profiler in production environments as it will lead to major security vulnerabilities in your project.

Über diesen Profiler konnten u.a. Konfigurationsdaten (“mysql://dev:████████@localhost:3306/dev”) sowie personenbezogene Daten von Bestellenden (Name, Adresse, E-Mail-Adresse) abgerufen werden. Die Daten reichten ein Jahr zurück und umfassten augenscheinlich nicht nur Testdaten.

Leakvent 1: Ferrari Academy

Bis zum 39C3 öffne ich täglich ein Türchen zu den langweiligsten Datenlecks der letzten Jahre. Es geht um .git, .env, exponierte dev-Umgebungen und andere technisch langweilige Ursachen. Aber manchmal ist interessant, was sich hinter einem Türchen verbirgt. Alle Türchen sind hier zu finden.

Es geht los mit der Ferrari Academy. Betroffen waren 2022 nicht besonders viele Menschen. Dafür gab es .git und .env mit Zugangsdaten, eine exponierte dev-Umgebung sowie directory listings und herunterladbare Backups von php-Dateien.

  1. Unter https://academy.ferrari.com/ waren directory listings aktiviert. So konnte u.a. unter https://academy.ferrari.com/<redacted>/HubSync/users.csv eine csv-Datei mit personenbezogenen Daten (u.a. Ausweisnummer) gefunden werden.
  2. “Backups” von php-Dateien erlaubten den Zugriff auf Quellcode, bspw. https://academy.ferrari.com/<redacted>/class.ilCompetence.php.backPrimadiAPOS. Im Quellcode sind auch Zugangsdaten zu finden.

$mail->Username = ‘AKIA████████████████’;
$mail->Password = ‘████████████████████’;

#$mail->addCustomHeader(‘X-SES-CONFIGURATION-SET’,’ConfigSet’);
$mail->Host = ’email-smtp.eu-west-1.amazonaws.com’;
$mail->Port = 465;

  1. Unter https://<redacted>/.env lag eine Datei mit Umgebungsvariablen.

APP_NAME=Laravel
APP_ENV=local

DB_CONNECTION=mysql
DB_HOST=█████████
DB_PORT=3306
DB_DATABASE=█████████
DB_USERNAME=█████████
DB_PASSWORD=█████████

DB_HOST2=█████████
DB_DATABASE2=lmsdb_prod
DB_USERNAME2=█████████
DB_PASSWORD2=█████████

ACADEMYURL=“http://dev.academy.ferrari.com”

  1. Unter https://<redacted>/lms-ferrari/.git/ und https://<redacted>/fixitproject/.git/ lagen zwei git-Repositories mit Quellcode, Konfiguration und personenbezogenen Daten.