
Exploit in modalità sviluppo di Rails. Con una certa conoscenza dell'applicazione target, è possibile per un attaccante indovinare il secret token generato automaticamente per la modalità sviluppo. Questo secret token può essere utilizzato in combinazione con altri componenti interni di Rails per arrivare a un exploit di esecuzione remota di codice.
Una vulnerabilità di esecuzione remota di codice in Rails <5.2.2.1, <6.0.0.beta3 in modalità di sviluppo può consentire a un attaccante di indovinare il token segreto generato automaticamente per la modalità di sviluppo. Questo token segreto può essere utilizzato in combinazione con altri meccanismi interni di Rails per raggiungere uno sfruttamento di esecuzione remota di codice. Questo codice PoC per CVE-2019-5420 eleva i privilegi a un account amministratore senza l'esecuzione remota di codice stessa.
Copia il valore del cookie e sostituiscilo con "VALUE_OF_THE_COOKIE" alla riga 11:
cookie = CGI.unescape "VALUE_OF_THE_COOKIE" # put in the value of your cookie here
Inoltre, sostituisci "NAME::Application" con il nome della tua applicazione. Ad esempio, se il nome dell'applicazione è "test", sarà "test::Application":
secret = Digest::MD5.hexdigest("NAME::Application") # the name of the ruby on rails application, either bruteforce or have to be known directly
Esegui l'exploit e copia l'output del cookie. Sostituiscilo con il cookie dell'applicazione web:
ruby CVE-2019-5420.rb