
# Script di exploit in Python per CVE-2019-5420 Script di exploit in Python per CVE-2019-5420, che mira al brute-forcing della chiave AES GCM della sessione firmata di Ruby on Rails per ottenere l'esecuzione remota di codice in ambienti di sviluppo/staging.
Ruby-on-Rails offre tre diversi ambienti in cui può essere eseguito: sviluppo, test e produzione. Ovviamente non dovresti avere codice in esecuzione in sviluppo o test disponibile su internet, ma (come sempre) succede (ad esempio in ambienti di staging).
Ruby-on-Rails utilizza "sessioni firmate" per consentire alle persone di scalare facilmente le proprie applicazioni. Nel corso del tempo, il modo in cui le sessioni venivano gestite è cambiato. Con la 5.2.2, le sessioni sono dati codificati in JSON protetti di default tramite AES GCM (aes-256-gcm).
CVE-2019-5420 è in realtà molto semplice. La chiave utilizzata per crittografare le sessioni può essere indovinata (o forzata) in modalità sviluppo perché si basa sul nome dell'applicazione. Questo problema può potenzialmente essere utilizzato per ottenere l'esecuzione di codice (RCE) secondo l'avviso.
Un semplice script pyton sfrutta la funzionalità sopra descritta.