Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
rails-cve-2017-17917 — CVE-2017-17917 在 Rails 中的 SQL 注入教育演示,包含逐步复现以及使用参数化查询的安全编码缓解措施。 | Kitploit
工具/GitHubGitHub/matiasarenhard/rails-cve-2017-17917
漏洞分析代码分析Web应用程序漏洞利用学习与教育数据库安全实验室与实践
GitHubmatiasarenhard/rails-cve-2017-17917

rails-cve-2017-17917

CVE-2017-17917 在 Rails 中的 SQL 注入教育演示,包含逐步复现以及使用参数化查询的安全编码缓解措施。

查看仓库
162年前尚未审核

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

rails-cve-2017-17917

该项目演示了在 id 参数中 SQL 注入漏洞的复现,并随后提供了缓解和解决此安全问题的见解。
https://www.cvedetails.com/cve/CVE-2017-17917/?q=CVE-2017-17917

技术栈:

root@kitploit:~
  Ruby: 3.2.2
  Rails: 7.0.8
  Docker 24.0.5
  Docker-Compose 1.29.2
  PostgreSQL

CVE-2017-17917

image

我们选择此 CVE 是为了强调该问题在最新版本的 Rails 中仍持续出现,重申了开发最佳实践的相关性。

用于复现漏洞的环境架构

无标题图表 drawio(1)

复现此漏洞的步骤

要求:

root@kitploit:~
  docker
  docker-compose

构建项目的步骤:

root@kitploit:~
  sudo docker-compose build

image

root@kitploit:~
  sudo docker-compose run web bundle install

image

root@kitploit:~
  sudo docker-compose run web rails db:create db:migrate db:seed

image

root@kitploit:~
  sudo docker-compose up

image

访问 http://localhost:3000/

image

image

SQL 注入参数 1 OR id > 1

image

评估生产环境中漏洞的风险

通过此 SQL 注入,攻击者可以检索正常情况下无权查看的用户数据。
执行难度等级:简单

结论

问题出在控制器方法中,具体是在调用 where 子句时,如下所示:
@clients = Client.where("id = #{params[:id_search]}")
代码链接

通过以下方式解决问题:
@clients = Client.where(id: "#{params[:id_search]}")
代码链接

测试

root@kitploit:~
  sudo docker-compose run web rspec

image

下载工具