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
text4shell-tools — Rileva e correggi Apache Commons Text vulnerabile negli artefatti JAR/WAR Java; identifica le classi e scansiona il bytecode per i siti di chiamata relativi a CVE-2022-42889 (Text4Shell). | Kitploit
Strumenti/GitHubGitHub/jfrog/text4shell-tools
Strumenti DifensiviAnalisi StaticaAnalisi delle VulnerabilitàAnalisi del CodiceAnalisi di BinariSicurezza della Supply Chain
GitHubjfrog/text4shell-tools

text4shell-tools

Rileva e correggi Apache Commons Text vulnerabile negli artefatti JAR/WAR Java; identifica le classi e scansiona il bytecode per i siti di chiamata relativi a CVE-2022-42889 (Text4Shell).

Vedi Repository
10420183 anni faRevisionato da Kitploit

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

commons-text-tools

Collegamenti rapidi

Clicca per trovare:

  • Trova i file .jar di commons-text e le loro versioni

  • Chiamate alle funzioni vulnerabili di commons-text

  • Patch immediata sui file .jar di commons-text per disabilitare i comportamenti vulnerabili

  • Esempio di scansione e patch

Panoramica

CVE-2022-42889 può rappresentare una seria minaccia per un'ampia gamma di applicazioni basate su Java. Le domande importanti che uno sviluppatore potrebbe porsi in questo contesto sono:

1. Il mio codice include commons-text? Quali versioni?

Il codice rilasciato include commons-text? Quale versione della libreria è inclusa? Rispondere a queste domande potrebbe non essere immediato a causa di due fattori:

  1. Dipendenze transitive: anche se commons-text potrebbe non essere nell'elenco delle dipendenze dirette del progetto, potrebbe essere usato indirettamente da qualche altra dipendenza.

  2. Il codice di questa libreria potrebbe non apparire direttamente come file separato, ma essere raggruppato in qualche altro file jar di codice.

JFrog rilascia uno strumento per aiutare a risolvere questo problema: scan_commons_text_versions. Lo strumento cerca il codice della classe di StringLookupFactory (indipendentemente dai nomi dei file .jar e dal contenuto dei file pom.xml), e tenta di identificare tramite impronta digitale le versioni degli oggetti per segnalare se la versione inclusa di commons-text è vulnerabile.

2. Il mio codice usa funzioni vulnerabili di commons-text?

La domanda è rilevante nei casi in cui lo sviluppatore voglia verificare se le chiamate a commons-text nel codebase possano passare dati potenzialmente controllati da un attaccante. Sebbene il modo più sicuro per correggere la vulnerabilità, come discusso negli advisory, sia applicare le patch appropriate, controllare e verificare il potenziale impatto nell'ipotesi di un commons-text non patchato può essere prezioso in molte situazioni.

scan_commons_text_calls_jar.py, che individua le chiamate alle funzioni vulnerabili nei file .jar compilati, e riporta i risultati come nome della classe e nome del metodo in cui appare ciascuna chiamata.

3. Ho file jar vulnerabili di commons-text nel mio sistema, come posso disabilitare rapidamente il comportamento pericoloso?

  • L'aggiornamento rimane la soluzione migliore - questa soluzione è pensata per una patch immediata (hot patching)

  • Nel contesto della vulnerabilità CVE-2022-42889, la classe org/apache/commons/text/lookup/ScriptStringLookup in commons-text consente l'esecuzione di script che possono essere incorporati in una stringa ricevuta da una fonte controllata dall'attaccante tramite ${script}. Pertanto, le invocazioni della funzione ScriptStringLookup.lookup sono indicative dell'attivazione della funzionalità.

  • Forniamo uno strumento, Text4ShellPatch, che consente di applicare una patch a questa specifica chiamata in modo che la funzionalità di esecuzione degli script non possa essere utilizzata. Dopo aver applicato la patch, la libreria eseguirà sempre uno script che restituisce un messaggio di avviso (invece del codice potenzialmente controllato dall'attaccante)

  • Allo stesso modo, la ricerca DNS e URL può caricare contenuti non attendibili se controllata da un attaccante tramite ${dns} e ${url}; pertanto, le rispettive funzioni di ricerca DnsStringLookup e UrlStringLookup possono essere disabilitate tramite patch per restituire un messaggio di avviso,

  • La patch può essere applicata a un file jar specifico, solo per la ricerca script oppure script, dns e url per una protezione migliore nel caso in cui non sia previsto l'uso nell'applicazione,

  • Viene generato un backup nella stessa posizione del jar originale prima che venga sostituito con quello patchato. Il nome del file di backup segue il seguente schema: <nome_jar_originale>_YYYY.MM.DD_HH.mm.ss.orig.jar dove YYYY, MM, DD sono rispettivamente l'anno, il mese e il giorno, e HH, mm, ss sono rispettivamente l'ora, i minuti e i secondi.

  • È anche possibile individuare le versioni vulnerabili di commons-text e applicare loro una patch automaticamente, come risponde alla prossima domanda.

4. Posso automatizzare la scansione e la patch dei jar vulnerabili di commons-text?

Due dei nostri strumenti insieme offrono la possibilità di scansionare e applicare patch ai file jar vulnerabili di commons-text.

Nella repository Github è presente uno script bash di esempio con il nome scan_and_patch.sh. In pratica, utilizza lo script scan_commons_text_versions.py per trovare, all'interno di una specifica root-folder, i file jar vulnerabili di commons-text con una versione vulnerabile ed esegue su di essi lo strumento Text4ShellPatch come segue.

Esempio di automazione


scan_commons_text_versions.py

Utilizzo
python scan_commons_text_versions.py root-folder [-quiet] [-exclude folder1 folder2 ..]

Lo strumento esegue la scansione ricorsiva di root_folder alla ricerca di file .jar e .war; in ogni file individuato, lo strumento cerca una StringLookupFactory.class (ricorsivamente in ogni file .jar). Se viene trovata almeno una delle classi, lo strumento tenta di identificarne tramite impronta digitale la versione (incluse alcune variazioni trovate nelle patch e nelle backport patch) per segnalare se il codice è vulnerabile.

Con il flag -quiet, vengono stampate solo le conclusioni sulla versione, mentre gli altri messaggi (file non trovati/ archivi che non si aprono/ archivi protetti da password) vengono silenziati.

Le cartelle che compaiono dopo -exclude (opzionale) vengono saltate.


scan_commons_text_calls_jar.py

Lo strumento richiede Python 3 e le seguenti librerie di terze parti: jawa, tqdm, easyargs, colorama

Installazione delle dipendenze
pip install -r requirements.txt
Utilizzo

Il caso d'uso predefinito:

python scan_commons_text_calls_jar.py root-folder

esegue la scansione ricorsiva di tutti i file .jar in root-folder, stampando per ciascuno le posizioni (nome della classe e nome del metodo) delle chiamate ai metodi lookup/replace/replaceIn di StringSubstitutor/StringLookup.

Lo strumento può essere configurato per ulteriori casi d'uso tramite i seguenti flag da riga di comando.

Scarica lo strumento