
Exploit en mode développement Rails. Avec une certaine connaissance d'une application cible, il est possible pour un attaquant de deviner le jeton secret de mode développement généré automatiquement. Ce jeton secret peut être utilisé en combinaison avec d'autres éléments internes de Rails pour escalader vers une exploitation d'exécution de code à distance.
Une vulnérabilité d'exécution de code à distance en mode développement dans Rails <5.2.2.1, <6.0.0.beta3 peut permettre à un attaquant de deviner le jeton secret généré automatiquement en mode développement. Ce jeton secret peut être utilisé en combinaison avec d'autres mécanismes internes de Rails pour escalader vers une exploitation d'exécution de code à distance. Ce code PoC pour CVE-2019-5420 permet d'élever les privilèges vers un compte administrateur sans l'exécution de code à distance elle-même.
Copiez la valeur du cookie et remplacez-la par "VALUE_OF_THE_COOKIE" à la ligne 11 :
cookie = CGI.unescape "VALUE_OF_THE_COOKIE" # put in the value of your cookie here
Ensuite, remplacez "NAME::Application" par le nom de votre application. Par exemple, si le nom de l'application est "test", ce serait "test::Application" :
secret = Digest::MD5.hexdigest("NAME::Application") # the name of the ruby on rails application, either bruteforce or have to be known directly
Exécutez l'exploit et copiez la sortie du cookie. Remplacez-le par le cookie de l'application web :
ruby CVE-2019-5420.rb