
CVE-2015-3224 Exploit - Rails Web Console RCE
Une implémentation JavaScript (Node.js) de l'exploit pour CVE-2015-3224. Cet outil cible les applications Ruby on Rails exécutant des versions vulnérables de la gem web-console, permettant une exécution de code à distance (RCE) non authentifiée.
CVE-2015-3224 permet à un attaquant de contourner la protection de la liste blanche IP de la gem web-console de Rails.
La web-console est un outil de débogage destiné à être utilisé uniquement en développement. Par défaut, elle restreint l'accès à l'adresse IP 127.0.0.1 (localhost). Cependant, les versions vulnérables vérifient l'adresse IP du client en se basant sur l'en-tête HTTP X-Forwarded-For sans validation appropriée.
En élaborant une requête avec une IP usurpée spécifique (par exemple 0000::1), un attaquant peut tromper l'application en lui faisant croire que la requête provient d'une source locale de confiance. Étant donné que la console évalue du code Ruby, cela conduit immédiatement à une Exécution de Code à Distance (RCE).
Ce script automatise le processus d'exploitation en deux étapes principales :
Reconnaissance et extraction du chemin :
data-remote-path caché, qui est un identifiant de session unique nécessaire pour interagir avec la console.Injection de payload :
X-Forwarded-For: 0000::1 pour contourner la vérification IP.input (correctement formatée en corps url-encoded).fetch).Clonez le dépôt et exécutez le script directement avec Node.js :
# Syntax
node exploit.js [TARGET_URL] [COMMAND]
# Example
node exploit.js http://vulnerable-site.com "uname -a"
[*] Target: http://vulnerable-site.com
[*] Command: whoami
[+] Console path found: console/repl_sessions/cd984a0d............
[+] Command Output:
---------------------------------------------------
webrick
---------------------------------------------------
Pour corriger cette vulnérabilité, mettez à jour la gem web-console vers la version 2.1.3 ou supérieure dans votre Gemfile :
gem 'web-console', '>= 2.1.3'
Sinon, assurez-vous que la console web est strictement désactivée dans les environnements de production.
Distribué sous la licence MIT.