
CVE-2015-3224 Эксплойт - Rails Web Console RCE
Реализация эксплойта для CVE-2015-3224 на JavaScript (Node.js). Этот инструмент нацелен на приложения Ruby on Rails, использующие уязвимые версии гема web-console, что позволяет неаутентифицированное удаленное выполнение кода (RCE).
CVE-2015-3224 позволяет злоумышленнику обойти защиту белого списка IP-адресов гема web-console Rails.
web-console — это отладочный инструмент, предназначенный для использования только во время разработки. По умолчанию он ограничивает доступ к IP-адресу 127.0.0.1 (localhost). Однако уязвимые версии проверяют IP-адрес клиента на основе HTTP-заголовка X-Forwarded-For без надлежащей проверки.
Создавая запрос с определенным поддельным IP-адресом (например, 0000::1), злоумышленник может обмануть приложение, заставив его поверить, что запрос поступает из доверенного локального источника. Поскольку консоль выполняет Ruby-код, это приводит к немедленному удаленному выполнению кода (RCE).
Этот скрипт автоматизирует процесс эксплуатации в два основных шага:
Разведка и извлечение пути:
data-remote-path, который является уникальным идентификатором сессии, необходимым для взаимодействия с консолью.Внедрение полезной нагрузки:
X-Forwarded-For: 0000::1, чтобы обойти проверку IP.input (правильно отформатированную как тело form-url-encoded).fetch).Клонируйте репозиторий и запустите скрипт напрямую через 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
---------------------------------------------------
Чтобы исправить эту уязвимость, обновите гем web-console до версии 2.1.3 или выше в вашем Gemfile:
gem 'web-console', '>= 2.1.3'
В качестве альтернативы убедитесь, что веб-консоль строго отключена в рабочих средах.
Распространяется по лицензии MIT.