
owasp/railsgoatRailsGoat 是一个故意设计的易受***的 Ruby on Rails Web 应用。它展示了 OWASP Top 10 中的真实世界安全漏洞,作为开发者和安全专业人员的实战培训平台。
RailsGoat 是一个特意设计的不安全 Rails 应用,旨在教授 Web 应用安全。通过探索和利用其漏洞,您将学习:
当前版本: Rails 8.0 搭配 Ruby 3.4.1
RailsGoat 展示了 OWASP Top 10 中的真实世界安全漏洞,包括 SQL 注入、跨站脚本(XSS)、身份验证问题、不安全的直接对象引用等。
有关包含详细说明和教程的完整漏洞列表,请访问 RailsGoat Wiki。
刚接触 Ruby? 按照 GoRails 上的安装指南为您的操作系统进行设置。
克隆仓库:
bashgit clone [***] cd railsgoat
安装依赖:
bashgem install bundler bundle install
设置数据库:
bashrails db:setup
启动服务器:
bashrails server
打开浏览器:
导航至 http://localhost:3000 开始探索!
main 分支运行 Rails 8。如需旧版本,请切换分支:
bashgit checkout rails_3_2 # Rails 3.2 git checkout rails_4_2 # Rails 4.2 git checkout rails_5 # Rails 5.x
运行漏洞测试套件以查看存在哪些安全缺陷:
bashrails training
每个失败的测试都表示一个漏洞。测试输出包含指向 wiki 教程的链接,解释:
要运行特定的漏洞测试:
bashrails training SPEC=spec/vulnerabilities/sql_injection_spec.rb
访问 RailsGoat Wiki 获取每个漏洞的详细教程,包括:
要求: Docker 和 Docker Compose 1.6.0+
对于 Mac Apple Silicon(ARM64): 必须安装 Rosetta
bashdocker-compose build docker-compose run web rails db:setup docker-compose up
应用将在 http://localhost:3000 可用
故障排除: 如果容器因“服务器已在运行”退出,请从工作目录中删除 tmp/pids/server.pid 后重试。
某些 SQL 注入漏洞需要 MySQL。要使用 MySQL 运行:
bash# 创建并迁移数据库 RAILS_ENV=mysql rails db:create RAILS_ENV=mysql rails db:migrate # 启动服务器 RAILS_ENV=mysql rails server
RailsGoat 使用 MailCatcher 拦截邮件:
bashgem install mailcatcher mailcatcher
在 http://localhost:1080 查看邮件
设置 RAILSGOAT_MAINTAINER 环境变量以验证漏洞是否仍然存在:
bashRAILSGOAT_MAINTAINER="yes" bundle exec rspec
在维护者模式下,当漏洞正确实现时测试通过(与培训模式相反)。
我们欢迎贡献!请查看我们的 贡献指南 了解详情。
需要帮助?
RailsGoat 的创建旨在展示 Rails 应用中的安全漏洞并教授安全编码实践。它不断更新,经历了 Rails 3、4、5、6 版本,现在是 Rails 8,随着框架的发展保持相关性。
2013 年 11 月完成了向 OWASP Top Ten 2013 的转换。
MIT 许可协议
警告: 此应用包含严重安全漏洞。切勿在公共服务器或网络上部署。仅在隔离的培训环境中使用。






manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务