
Sonda gli endpoint che consumano oggetti serializzati Java per identificare classi, librerie e versioni delle librerie nei classpath Java remoti.
Hai appena trovato un bug di deserializzazione Java, hai eseguito tutti i tuoi payload ysoserial e... non hai ottenuto nulla. E adesso? Come puoi fare debug o costruire una catena di gadget se sei completamente cieco?
Ecco GadgetProbe, uno strumento che fa luce sui classpath remoti e aumenta la gravità del bug per tutti!
GadgetProbe prende una wordlist di classi Java, genera oggetti serializzati di callback DNS e riporta cosa si nasconde nel classpath remoto.
L'estensione Burp si integra automaticamente con Burp Collaborator per gestire i callback DNS. L'estensione include anche firme e un analizzatore per identificare le versioni delle librerie delle fonti più comuni per i gadget.
Scarica la release oppure segui le istruzioni di build qui sotto.
Dopo aver caricato l'estensione Burp:

2. Aggiungi un elenco di classi Java (vedi le wordlist incluse)

3. Aggiungi il payload processor GadgetProbe e qualsiasi altro processor richiesto nella tua catena (ad es. codifica Base64).

4. Esegui l'attacco Intruder e osserva i risultati tornare nella scheda GadgetProbe di Burp.

GadgetProbe può essere utilizzato anche come libreria Java o CLI per attacchi specializzati.
import com.bishopfox.gadgetprobe.GadgetProbe
...
// Call the GadgetProbe constructor with your authoritative nameserver (or use Burp collaborator).
GadgetProbe gp = new GadgetProbe("dnscallback.burpcollaborator.net");
// The crafted object "obj" is now ready to be sent using any custom implementation :)
Object obj = gp.getObject("org.apache.commons.collections.functors.invokertransformer");
# Build JAR (run first)
./gradlew shadowJar
# Build wordlists
./generate_wordlists.sh
Vedi il mio articolo sul blog di Bishop Fox.
Twitter: @theBumbleSec
GitHub: the-bumble