Skip to content
KitploitKITPLOIT
ToolsExploitsBlog
Log in
Einreichen
ToolsExploitsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

FeedsKontaktDatenschutz© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
stirling-h2-import-leftover — Stirling-PDF v3.2.0 – Kritisch – Remote – H2 RUNSCRIPT-Überbleibsel – CREATE OR REPLACE ALIAS import-database | Kitploit
Tools/GitHubGitHub/abraxas/stirling-h2-import-leftover
SchwachstellenanalyseExploitationWebanwendungs-ExploitationSicherheitsvirtualisierungPenetrationstestsDatenbanksicherheit
GitHubabraxas/stirling-h2-import-leftover

stirling-h2-import-leftover

Stirling-PDF v3.2.0 – Kritisch – Remote – H2 RUNSCRIPT-Überbleibsel – CREATE OR REPLACE ALIAS import-database

Repository anzeigen
4vor 1 TagNoch nicht geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

Abraxas Labs - stirling-h2-import-leftover

abraxaslabs.tech  ·  github.com/abraxas  ·  @abraxas_null  ·  [email protected]  ·  stirling-h2-import-leftover

stirling-h2-import-leftover

Stirling-PDF 3.2.0 - Stirling Tools

Klasse: H2-RUNSCRIPT-Überbleibsel von GHSA-mrr8. Reichweite: Remote ROLE_ADMIN.

POST /api/v1/database/import-database ist @PreAuthorize("hasRole('ADMIN')"). validateSqlContent soll CREATE ALIAS verhindern. Die Denylist lautet CREATE\s+(FORCE\s+)?ALIAS. H2 parseCreate erlaubt OR REPLACE vor ALIAS, sodass CREATE OR REPLACE ALIAS … FOR "java.lang.…" auf die Allowlist \bCREATE\b passt und die Denylist umgeht. Der Validator bereinigt eine Kopie. verifyBackup und die Produktion führen RUNSCRIPT FROM ? auf der Originaldatei aus.

GHSA-mrr8-934j-4g8m / CVE-2026-85714 hat die ursprünglichen FILE_READ- / CREATE ALIAS- / CSVWRITE-Strings geschlossen. Dieses Überbleibsel ist die OR REPLACE-Lücke in demselben Validator.

Ein ROLE_ADMIN-Import erzeugt einen Java-Alias, den die Denylist eigentlich verhindern soll. Ein späterer Backup-Download enthält Angreifer-SQL. Host-FILE_READ / FileUtils-RCE aus dem ursprünglichen Advisory ist abgeleitet, nicht im Labor in diesem Paket nachgewiesen.

IDnoch keine CVE
CWECWE-94 / CWE-184
CVSS9.1 CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:C/C:H/I:H/A:H
ProduktStirling-PDF
Betroffenv3.2.0 (a7e593728dd9aa81e75318a949789d3c2e9ee754), Image stirlingtools/stirling-pdf:3.2.0-fat
AuthROLE_ADMIN, standardmäßig eingebettetes H2. Standardmäßig erster Admin admin / stirling, bis geändert
LizenzGNU Affero GPL v3.0
Labnur 127.0.0.1:18152

Überbleibsel der Reihe Stirling-PDF v3.2.0 leftovers. Verwandt: stirling-storage-folder-idor (implizites Storage-Root des Processing-Ordners). Dieses Paket ist das H2-Import-Überbleibsel.

Was ein Angreifer tun kann

ROLE_ADMIN bei login-on proprietary/fat mit dem standardmäßig eingebetteten H2. Der standardmäßige erste Admin ist admin / stirling, wenn initialLogin leer ist. Unauth ist nicht erforderlich. Lite-Image und PostgreSQL-Datenquellen liefern diesen Controller nicht mit.

Privilegientabelle (vollständig). Gleicher Maßstab wie Signal-Server Dropwizard admin: Methode + Pfad, was dieser Aufruf gewährt, Recon vs. Integrität vs. Verfügbarkeit, im Labor nachgewiesen vs. abgeleitet, angrenzende Angriffsfläche, die geschlossen bleibt.

AchseMethode + PfadGewährtProvenienz
IntegritätROLE_ADMIN POST /api/v1/database/import-database mit CREATE OR REPLACE ALIAS lab_nano FOR "java.lang.System.nanoTime" plus INSERT INTO lab_w VALUES('STIRLING-H2-IMPORT-WITNESS')200 importIntoDatabaseSuccessed. Java-Alias erstellt. Angreifer-SQL unter RUNSCRIPT committetIm Labor nachgewiesen
ReconROLE_ADMIN GET /api/v1/database/createDatabaseBackup, dann GET /api/v1/database/download/backup_202610172328.sql50432-Byte-Backup enthält STIRLING-H2-IMPORT-WITNESSIm Labor nachgewiesen
Recon / Host-Dateiderselbe Import, der FILE_READ('/etc/os-release') in EXECUTE IMMEDIATE einbettet500 Backup verification failed. Host-Bytes nicht in einem BackupLabor-Zusatz FEHLGESCHLAGEN
Integrität / RCEAlias org.h2.store.fs.FileUtils plus CSVWRITE einer Python-User-Site-.pth, dann Office-KonvertierungBefehlsausführung als das DienstkontoAbgeleitet aus GHSA-mrr8. Hier nicht im Labor getestet
Verfügbarkeitkeine beanspruchtImport kann Anwendungstabellen ersetzenAbgeleitet. Nicht das Labor-Orakel

Bleibt bei diesem Pin geschlossen

AchseMethode + PfadWarum geschlossen
Integritätunauth POST /api/v1/database/import-database401 Authentication required. Methodensicherheit ADMIN bleibt aktiv, wenn HTTP permitAll ist
IntegritätROLE_ADMIN-Import von bloßem CREATE ALIAS500 SQL script contains disallowed operations and was rejected
IntegritätLite- / DISABLE_ADDITIONAL_FEATURES-ImageDatabaseController fehlt
Integritätbenutzerdefinierte PostgreSQL-Datenquelle@Conditional(H2SQLCondition.class)

Ich beanspruche keine Reverse Shell, und ich beanspruche Host-FILE_READ nicht als im Labor nachgewiesen. Der Rest ist der Denylist-Fehlgriff, der CREATE OR REPLACE ALIAS … FOR "java.lang.…" durch RUNSCRIPT lässt.

Wie ich es gefunden habe

v3.2.0 liefert noch den GHSA-mrr8-Validator aus. Ich blieb auf diesem Tag und las DENIED_PATTERNS. Die Alias-Zeile ist CREATE\s+(FORCE\s+)?ALIAS. H2s Parser akzeptiert CREATE OR REPLACE ALIAS. Tests decken die offensichtlichen CREATE ALIAS- / FILE_READ(-Strings ab. Sie decken OR REPLACE nicht ab.

Das Labor meldet sich als Standard-Admin an, schließt change-password-on-login ab, importiert ein verweigertes CREATE ALIAS (500) und importiert dann CREATE OR REPLACE ALIAS plus einen INSERT-Zeugen (200). Ein Backup-Download enthält den Zeugen.

Irrwege: unauth-Import als im Scope behandeln (401); EXECUTE IMMEDIATE + FILE_READ als den Rest behandeln (verifyBackup 500); das ursprüngliche, nicht verschleierte CREATE ALIAS als noch aktiv behandeln (es wird verweigert).

Labor

python3 stirling-h2-import-leftover-Abraxas-Labs.py

oder

cd lab
./run.sh

Ziel ist ausschließlich http://127.0.0.1:18152. Image stirlingtools/stirling-pdf:3.2.0-fat. Docker erforderlich. Login aktiviert. Der Launcher führt chdir in lab/ aus und startet run.sh per exec.

IOC unauth-import http=401
IOC negative-import http=500 ... disallowed operations ...
IOC leftover-import bypass=create-or-replace-alias http=200 ... importIntoDatabaseSuccessed
IOC download file=backup_202610172328.sql http=200 bytes=50432 witness=1
SUCCESS stirling-h2-import-leftover negative-denied=yes bypass=create-or-replace-alias backup-has-witness=yes file=backup_202610172328.sql unauth-import=401 STIRLING-H2-IMPORT-WITNESS

Die Behebung

Erweitern Sie die Denylist so, dass OR REPLACE nicht zwischen CREATE und ALIAS stehen kann. Führen Sie validateSqlContent auf denselben Bytes aus, die RUNSCRIPT ausführen wird. Verweigern Sie EXECUTE IMMEDIATE, es sei denn, das innere SQL wird ebenfalls gescannt.

Pattern.compile("(?i)\\bCREATE\\s+(OR\\s+REPLACE\\s+)?(FORCE\\s+)?ALIAS\\b")
Tool herunterladen