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.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
spring4shell-local-verification-lab — Spring Framework CVE-2022-22965: verifica delle condizioni di impatto locale, correzione dell'aggiornamento della versione e progetto di ritest | Kitploit
Strumenti/GitHubGitHub/meng-security/spring4shell-local-verification-lab
Analisi delle VulnerabilitàAnalisi del CodiceExploitSicurezza WebApprendimento e FormazioneLab e Pratica
GitHubmeng-security/spring4shell-local-verification-lab

spring4shell-local-verification-lab

Spring Framework CVE-2022-22965: verifica delle condizioni di impatto locale, correzione dell'aggiornamento della versione e progetto di ritest

Vedi Repository
82 mesi 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

Progetto di verifica delle condizioni di impatto locale, riparazione e ripetizione del test per Spring4Shell

Introduzione al progetto

Questo progetto è utilizzato per apprendere e verificare Spring Framework CVE-2022-22965, noto anche come vulnerabilità Spring4Shell, comprese le condizioni di impatto, le manifestazioni di rischio, i metodi di riparazione e il processo di ripetizione del test dopo la riparazione.

Il progetto è stato completato in un ambiente autorizzato locale allestito personalmente. L'attenzione del progetto non è quella di attaccare obiettivi reali, ma di allestire un ambiente di test Spring MVC prima e dopo la riparazione, confermare uno per uno le condizioni di impatto relative alla vulnerabilità e utilizzare un metodo di sola lettura sicuro e controllato per osservare le differenze nei percorsi delle proprietà interne del data binding di Spring prima e dopo l'aggiornamento della versione.

Il progetto ha completato i seguenti passaggi:

  • Preparazione dell'ambiente JDK, Maven e Apache Tomcat
  • Allestimento del progetto WAR Spring MVC
  • Verifica della baseline delle funzionalità normali
  • Conferma delle condizioni di impatto della vulnerabilità
  • Diagnostica di sola lettura dei percorsi delle proprietà interne
  • Analisi delle cause della vulnerabilità
  • Aggiornamento della versione di Spring Framework
  • Ripetizione del test di sicurezza dopo la riparazione
  • Ripetizione del test delle funzionalità normali dopo la riparazione
  • Redazione del rapporto di test e raccolta delle evidenze screenshot

Dichiarazione di sicurezza

Questo progetto è utilizzato esclusivamente per ambienti locali autocostruiti o ambienti di test di sicurezza esplicitamente autorizzati.

Il progetto non esegue scansioni, rilevamenti o sfruttamenti di vulnerabilità su siti web pubblici, server o sistemi di terze parti, e non include dati utente reali o dati aziendali reali.

Durante il test non sono state eseguite le seguenti operazioni:

  • Nessuna scrittura di WebShell
  • Nessuna esecuzione di comandi di sistema
  • Nessuna modifica della configurazione di Tomcat
  • Nessuna creazione di reverse shell
  • Nessun controllo persistente
  • Nessun impatto su sistemi esterni

È vietato utilizzare i metodi di test di questo progetto su obiettivi non autorizzati.

Contesto della vulnerabilità

CVE-2022-22965 è comunemente noto come Spring4Shell ed è una vulnerabilità di esecuzione remota di codice in Spring Framework legata al meccanismo di data binding dei parametri delle richieste.

Spring MVC supporta il binding automatico dei parametri delle richieste HTTP nelle proprietà degli oggetti Java. Ad esempio, questo progetto riceve i parametri nome ed email nel seguente modo:

@ModelAttribute("profile") UserProfile profile

In condizioni normali, i parametri della richiesta name e email vengono associati all'oggetto UserProfile in base al nome della proprietà.

Nelle versioni interessate, le restrizioni di accesso ad alcuni percorsi di proprietà interne non sono sufficientemente rigorose. Quando si utilizza JDK 9 o versione successiva e sono soddisfatte specifiche condizioni di Servlet container, modalità di deployment e data binding, i parametri delle richieste esterne possono percorrere ulteriormente gli oggetti business normali per accedere a oggetti interni relativi a Java Class, moduli, class loader o container.

In ambienti specifici sfruttabili, un utente malintenzionato potrebbe modificare ulteriormente la configurazione del server o scrivere file sul server, creando così un rischio di esecuzione remota di codice.

Questo progetto non esegue uno sfruttamento completo di codice remoto, ma utilizza i seguenti percorsi di proprietà per una diagnostica differenziale sicura e di sola lettura:

class.module.name

Obiettivi del progetto

  1. Comprendere il processo di base del data binding dei parametri delle richieste di Spring MVC.
  2. Allestire un progetto di test Spring MVC WAR locale.
  3. Completare la verifica della baseline delle funzionalità business normali.
  4. Confermare le condizioni di impatto come Spring Framework, JDK, Tomcat, deployment WAR e punto di ingresso del data binding.
  5. Utilizzare un metodo di sola lettura per osservare le prestazioni di accesso ai percorsi delle proprietà interne.
  6. Analizzare le cause principali della vulnerabilità.
  7. Aggiornare Spring Framework alla versione corretta.
  8. Utilizzare lo stesso metodo per ripetere il test dopo la riparazione.
  9. Confermare che l'aggiornamento della versione non abbia influenzato le funzionalità business normali.
  10. Organizzare il codice sorgente del progetto, il rapporto di test e le evidenze screenshot.

Ambiente sperimentale

Questo progetto è stato completato in un ambiente sperimentale isolato VMware locale.

  • Host: Windows 11
  • Macchina di destinazione: Macchina virtuale Windows 10
  • Software di virtualizzazione: VMware Workstation
  • Ambiente Java: Eclipse Temurin JDK 11.0.31
  • Strumento di costruzione del progetto: Apache Maven 3.9.16
  • Servlet container: Apache Tomcat 9.0.60
  • Versione di Spring Framework prima della riparazione: 5.3.17
  • Versione di Spring Framework dopo la riparazione: 5.3.18
  • Framework Web: Spring MVC
  • Modalità di deployment del progetto: Deployment WAR tradizionale
  • Indirizzo di test: 127.0.0.1

Dati di test delle funzionalità normali:

  • Nome: Alice
  • Email: [email protected]

Percorso della proprietà per la diagnostica di sicurezza:

class.module.name

Struttura del progetto

spring4shell-local-verification-lab/

  • README.md: Introduzione al progetto, idea di test, risultati della verifica e spiegazione della riparazione
  • docs/: Rapporto di verifica delle condizioni di impatto locale, riparazione e ripetizione del test per Spring4Shell
  • images/: Screenshot dell'ambiente del progetto, del processo di test e della ripetizione del test
  • vulnerable-demo/: Progetto prima della riparazione che utilizza Spring Framework 5.3.17
  • fixed-demo/: Progetto dopo la riparazione che utilizza Spring Framework 5.3.18
  • notes/: Appunti di apprendimento e registrazione del processo

Struttura principale del codice sorgente:

  • config/: Classi di configurazione di Spring MVC e classi di inizializzazione dell'applicazione
  • controller/: Controller per l'elaborazione dei moduli e la diagnostica dei percorsi delle proprietà
  • model/: Classe UserProfile per ricevere i parametri nome ed email
  • WEB-INF/views/: Pagine JSP per la homepage, i risultati dell'invio e i risultati della diagnostica

Descrizione del progetto di test

Questo progetto ha creato due applicazioni Spring MVC, una prima della riparazione e una dopo la riparazione.

Progetto prima della riparazione

Directory del progetto:

vulnerable-demo

Versione utilizzata:

Spring Framework 5.3.17

File WAR generato:

spring4shell-vulnerable-demo.war

Indirizzo di accesso:

http://127.0.0.1:8080/spring4shell-vulnerable-demo/

Pagina di diagnostica:

http://127.0.0.1:8080/spring4shell-vulnerable-demo/binding-probe

Progetto dopo la riparazione

Directory del progetto:

fixed-demo

Versione utilizzata:

Spring Framework 5.3.18

File WAR generato:

spring4shell-fixed-demo.war

Indirizzo di accesso:

http://127.0.0.1:8080/spring4shell-fixed-demo/

Pagina di diagnostica:

http://127.0.0.1:8080/spring4shell-fixed-demo/binding-probe

Descrizione delle funzionalità normali

Il progetto di test fornisce un semplice modulo del profilo utente, che include:

  • Campo di input per il nome
  • Campo di input per l'email
  • Pulsante di invio del profilo

Il controller riceve i parametri della richiesta nel seguente modo:

@ModelAttribute("profile") UserProfile profile

Quando l'utente invia il nome e l'email, Spring MVC associa automaticamente i parametri name e email all'oggetto UserProfile.

La pagina dei risultati legge l'oggetto associato e visualizza il nome e l'email inviati dall'utente.

Scarica lo strumento