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
Research_Successful_Errors — Whitepaper che introduce le tecniche Blind basate su Error e Boolean Error per SSTI e Code Injection, con payload universali per sei linguaggi di programmazione e integrazione in SSTImap. | Kitploit
Strumenti/GitHubGitHub/vladko312/research_successful_errors
Analisi delle VulnerabilitàAnalisi del CodiceSfruttamento di Applicazioni WebFuzzingCTFPenetration TestingPaper e RicercaApprendimento e FormazioneSviluppo Payload
GitHubvladko312/research_successful_errors

Research_Successful_Errors

Whitepaper che introduce le tecniche Blind basate su Error e Boolean Error per SSTI e Code Injection, con payload universali per sei linguaggi di programmazione e integrazione in SSTImap.

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

Successful Errors: Nuove Tecniche di Code Injection e SSTI

Versione del report Ultima modifica

[!NOTE] Questa è la seconda versione del whitepaper basata sui risultati che ho presentato prima del rilascio di SSTImap versione 1.3.1. Ulteriori miglioramenti saranno adattati a questo formato come versione 1.2 della ricerca in una data successiva.

  • Payloads
  • Whitepaper stampabile
  • Slide

Alcune categorie di vulnerabilità possono a prima vista sembrare ben note e piuttosto ovvie. Può sembrare che tutte le possibili tecniche per tali vulnerabilità siano note, quindi potrebbero essere scoperti solo payload per casi insoliti. Server-Side Template Injection (SSTI) e Code Injection sono spesso considerate tra queste categorie ben note.

A volte, per queste vulnerabilità si incontrano nuove tecniche con nomi auto-esplicativi. Molti ricercatori potrebbero considerare queste tecniche anch’esse ben note o persino ricordare di averle usate, ma in realtà la tecnica potrebbe esistere solo come nome comunemente inteso, senza ricerche, descrizioni o payload universali. Potrebbe essere menzionata un paio di volte insieme a payload per casi molto specifici, ma non verrebbe testata e il vero potenziale di quella tecnica potrebbe rimanere sconosciuto per anni.

Questa ricerca introduce due tecniche di questo tipo per Code Injection e SSTI: Error-Based e Boolean Error-Based Blind. Fornirò payload per Code Injection e SSTI in sei linguaggi di programmazione: Python, PHP, Java, Ruby, NodeJS e Elixir. Inoltre, fornirò payload di rilevamento universali, in grado di rilevare rapidamente anche iniezioni cieche.

Fornirò la cronologia completa della mia ricerca, dalla scoperta dei primi indizi fino alle conclusioni finali. Esplorerò anche il processo di creazione di nuovi payload per linguaggi di programmazione e template non menzionati in questa ricerca.

In questa ricerca mostrerò esempi di applicazioni pratiche delle nuove tecniche e condividerò potenziali aree per ulteriori ricerche. Tutti i payload forniti possono essere utilizzati per rilevare e sfruttare vulnerabilità in applicazioni reali. Inoltre, tutti i payload forniti sono stati aggiunti allo strumento open-source SSTImap, che facilita l'applicazione dei risultati di questa ricerca a obiettivi reali.

Sommario

  • Introduzione
  • Indizi
    • Dust.JS
    • Twig (CVE-2022-23614)
    • JSONPath Plus (CVE-2025-1302)
    • expr-eval (CVE-2025-13204)
  • Error-Based SSTI
    • Python
    • PHP
    • Java
    • Ruby
    • NodeJS
    • Elixir
    • Rilevamento generico
    • Sviluppo dei payload
  • Boolean Error-Based Blind SSTI
    • Rilevamento degli errori
    • Python
    • PHP
    • Java
    • Ruby
    • NodeJS
    • Elixir
    • Rilevamento generico
    • Sviluppo dei payload
  • Applicazione pratica
    • expr-eval (CVE-2025-13204)
    • JSONPath Plus (CVE-2025-1302)
    • Twig (CVE-2022-23614)
    • Dust.JS
  • Conclusioni
  • Riferimenti

Introduzione

Le vulnerabilità di Server-Side Template Injection si verificano in siti web dinamici che utilizzano motori di template per il rendering lato server, quando l'input utente non attendibile viene inserito nel template prima che venga elaborato dal motore di template. Un attore malintenzionato può inserire sintassi di template valida, che verrebbe elaborata da un motore di template durante il rendering della pagina. Molti motori di template forniscono qualche forma di funzionalità di esecuzione di codice, che spesso porta a Remote Code Execution (RCE) sul server di destinazione. Questa ricerca si concentra sui motori di template che forniscono tali capacità in caso di sfruttamento.

Le vulnerabilità SSTI sono note dal 2015, e in quel periodo sono stati scoperti molti payload che forniscono esfiltrazione di informazioni, bypass di filtri e fuga dalla sandbox. Nonostante ciò, la maggior parte dei payload o rende il risultato direttamente sulla pagina o si concentra sul fatto stesso dell'esecuzione del codice, scartando i risultati prodotti da quel codice.

Flusso di iniezione reso

Un'altra tecnica SSTI ben nota è il Time-Based Blind, che consiste nell'aggiungere un ritardo al comando shell eseguito. Questa tecnica permette di determinare il successo dell'esecuzione del codice iniettato, ma richiede di indovinare il payload per l'esecuzione del comando del sistema operativo, il che rende più difficile rilevare SSTI cieco in un motore di template sconosciuto al ricercatore.

Flusso di iniezione cieca basata sul tempo

La classe di vulnerabilità SSTI e le tecniche di sfruttamento conosciute furono scoperte nel 2015 da James Kettle. Queste tecniche sono descritte in grande dettaglio nella sua ricerca “Server-Side Template Injection: RCE For The Modern Web App”. [^1] Nei dieci anni successivi, non sono state documentate nuove tecniche di sfruttamento. È stata scoperta solo una tecnica di rilevamento nel 2023, che utilizza payload poliglotti per testare più motori di template contemporaneamente. Questa tecnica è stata scoperta da Maximilian Hildebrand e descritta nella sua ricerca “Improving the Detection and Identification of Template Engines for Large-Scale Template Injection Scanning”. [^2] La tecnica si concentra sulla determinazione dei motori di template usando il numero minimo di richieste, ma funziona solo per contesti di iniezione semplici.

Flusso di rilevamento basato su poliglotti

La maggior parte dei motori di template basati su linguaggi di programmazione interpretati, come PHP, NodeJS e Python, consentono direttamente di valutare le espressioni dei corrispondenti linguaggi di programmazione. Questa capacità ci permette di utilizzare i payload per una categoria più ampia di vulnerabilità di Code Injection, racchiudendoli nel formato corretto del tag del template.

La Code Injection può verificarsi anche senza SSTI, quando l'input utente non attendibile può raggiungere eval() o una funzione pericolosa simile. Spesso si ritiene che lo sfruttamento della Code Injection sia semplicemente programmare nel linguaggio corrispondente, quindi le tecniche e i payload sono documentati solo per esempi di vulnerabilità specifici, che richiedono di adattare il codice all'applicazione target.

La mancanza di tecniche di rilevamento più universali per Code Injection e SSTI porta all'inefficienza della scansione black box per iniezioni cieche di codice e template.

Scarica lo strumento