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

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

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

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

工具目录

分类

查看所有分类
Loading categories
name_reverser — 愚蠢的Rails应用,用于演示漏洞CVE-2013-0156 | Kitploit
工具/GitHubGitHub/terracatta/name_reverser
漏洞分析漏洞利用Web应用程序漏洞利用渗透测试学习与教育
GitHubterracatta/name_reverser

name_reverser

愚蠢的Rails应用,用于演示漏洞CVE-2013-0156

查看仓库
13年前尚未审核

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

== 欢迎使用 Rails

Rails 是一个 Web 应用框架,包含了一切根据模型-视图-控制(Model-View-Control)模式创建数据库驱动 Web 应用所需的内容。

该模式将视图(也称为表示层)拆分为“哑”模板,主要负责在 HTML 标签之间插入预构建的数据。模型包含“智能”领域对象(如 Account、Product、Person、Post),这些对象拥有所有业务逻辑,并知道如何将自身持久化到数据库。控制器通过操作模型并将数据导向视图来处理传入的请求(如 Save New Account、Update Product、Show Post)。

在 Rails 中,模型由名为 Active Record 的对象关系映射层处理。该层允许你将数据库行中的数据呈现为对象,并用业务逻辑方法修饰这些数据对象。你可以在以下位置阅读更多关于 Active Record 的内容: link:files/vendor/rails/activerecord/README.html。

控制器和视图由 Action Pack 处理,它通过两个部分来处理这两层:Action View 和 Action Controller。这两层因为高度相互依赖而被捆绑在一个包中。这与 Active Record 和 Action Pack 之间的关系不同,后者更加分离。每个包都可以独立于 Rails 使用。你可以在以下位置阅读更多关于 Action Pack 的内容: link:files/vendor/rails/actionpack/README.html。

== 开始使用

  1. 在命令行提示符下,创建一个新的 Rails 应用: rails new myapp (其中 myapp 是应用名称)

  2. 切换到 myapp 目录并启动 Web 服务器: cd myapp; rails server (使用 --help 查看选项)

  3. 访问 http://localhost:3000/,你将看到: "Welcome aboard: You're riding Ruby on Rails!"

  4. 按照指南开始开发你的应用。你可以找到以下有用的资源:

  • 开始指南:http://guides.rubyonrails.org/getting_started.html
  • Ruby on Rails 教程书:http://www.railstutorial.org/

== 调试 Rails

有时你的应用会出问题。幸运的是,有很多工具可以帮助你调试并将其重新引回正轨。

首先要检查的是应用日志文件。在 server.log 和 development.log 上运行 "tail -f" 命令。Rails 会自动将调试和运行时信息显示到这些文件中。调试信息也会在来自 127.0.0.1 的请求中显示在浏览器中。

你也可以从控制器代码中使用 Ruby logger 类直接将你自己的消息记录到日志文件中。例如:

class WeblogController < ActionController::Base def destroy @weblog = Weblog.find(params[:id]) @weblog.destroy logger.info("#{Time.now} Destroyed Weblog ID ##{@weblog.id}!") end end

结果你的日志文件中会出现类似这样的消息:

Mon Oct 08 14:22:29 +1000 2007 Destroyed Weblog ID #1!

更多关于如何使用 logger 的信息,请访问 http://www.ruby-doc.org/core/

另外,Ruby 文档可以在 http://www.ruby-lang.org/ 找到。网上也有一些书籍可用:

  • Programming Ruby: http://www.ruby-doc.org/docs/ProgrammingRuby/ (Pickaxe)
  • Learn to Program: http://pine.fm/LearnToProgram/ (初学者指南)

这两本书将帮助你快速掌握 Ruby 语言以及编程基础知识。

== 调试器

当你使用 --debugger 启动 Mongrel 或 WEBrick 服务器时,可以通过 debugger 命令使用调试器支持。这意味着你可以在代码的任何位置中断执行,调查和修改模型,然后恢复执行!你需要安装 ruby-debug 才能以调试模式运行服务器。使用 gem,执行 sudo gem install ruby-debug。例如:

class WeblogController < ActionController::Base def index @posts = Post.all debugger end end

这样控制器会执行该动作,运行第一行,然后在服务器窗口中向你显示一个 IRB 提示符。在这里你可以做如下操作:

@posts.inspect => "[#<Post:0x14a6be8 @attributes={"title"=>nil, "body"=>nil, "id"=>"1"}>, #<Post:0x14a6620 @attributes={"title"=>"Rails", "body"=>"Only ten..", "id"=>"2"}>]" @posts.first.title = "hello from a debugger" => "hello from a debugger"

...更棒的是,你可以检查运行时对象的实际工作方式:

f = @posts.first => #<Post:0x13630c4 @attributes={"title"=>nil, "body"=>nil, "id"=>"1"}> f. Display all 152 possibilities? (y or n)

最后,当你准备好恢复执行时,可以输入 "cont"。

== 控制台

控制台是一个 Ruby shell,允许你与应用领域模型交互。在这里,你拥有应用配置的所有部分,就像应用运行时一样。你可以检查领域模型、修改值并保存到数据库。不带参数启动脚本将以开发环境启动它。

要启动控制台,在应用目录下运行 rails console。

选项:

  • 传递 -s, --sandbox 参数将回滚对数据库所做的任何修改。
  • 传递环境名称作为参数将加载相应的环境。例如:rails console production。

启动控制台后,运行 reload! 重新加载控制器和模型。

更多关于 irb 的信息可以在以下位置找到: link:http://www.rubycentral.org/pickaxe/irb.html

== dbconsole

你可以通过 rails dbconsole 直接进入数据库的命令行。你将使用 database.yml 中定义的凭据连接到数据库。不带参数启动脚本将连接到开发数据库。传递参数将连接到不同的数据库,例如 rails dbconsole production。目前支持 MySQL、PostgreSQL 和 SQLite 3。

== 内容说明

生成的 Ruby on Rails 应用的默认目录结构:

|-- app | |-- assets | |-- images | |-- javascripts | -- stylesheets | |-- controllers | |-- helpers | |-- mailers | |-- models | -- views | -- layouts |-- config | |-- environments | |-- initializers | -- locales |-- db |-- doc |-- lib | -- tasks |-- log |-- public |-- script |-- test | |-- fixtures | |-- functional | |-- integration | |-- performance | -- unit |-- tmp | |-- cache | |-- pids | |-- sessions | -- sockets -- vendor |-- assets -- stylesheets -- plugins

app 存放所有特定于该应用的代码。

app/assets 包含用于图像、样式表和 JavaScript 文件的子目录。

app/controllers 存放控制器,应命名为 weblogs_controller.rb 以便自动 URL 映射。所有控制器都应继承自 ApplicationController,而 ApplicationController 本身继承自 ActionController::Base。

app/models 存放模型,应命名为 post.rb。模型默认继承自 ActiveRecord::Base。

app/views 存放视图的模板文件,对于 WeblogsController#index 动作,应命名为 weblogs/index.html.erb。所有视图默认使用 eRuby 语法。

app/views/layouts 存放用于视图的布局模板文件。这模拟了常见的页眉/页脚方法包裹视图。在你的视图中,使用 layout :default 定义一个布局,并创建一个名为 default.html.erb 的文件。在 default.html.erb 中,调用 <% yield %> 来使用此布局渲染视图。

app/helpers 存放视图帮助器,应命名为 weblogs_helper.rb。当你使用生成器创建控制器时,这些文件会自动生成。帮助器可用于将视图的功能封装成方法。

config Rails 环境、路由映射、数据库和其他依赖关系的配置文件。

db 包含 schema.rb 中的数据库模式。db/migrate 包含模式的所有迁移序列。

doc 使用 rake doc:app 生成应用文档时,此目录将存储文档。

lib 应用特定的库。基本上,任何不属于控制器、模型或帮助器的自定义代码。此目录位于加载路径中。

public 可供 Web 服务器访问的目录。还包含调度程序和默认 HTML 文件。这应设置为你的 Web 服务器的 DOCUMENT_ROOT。

script 用于自动化和生成的辅助脚本。

test 单元测试、功能测试以及测试夹具。当使用 rails generate 命令时,测试模板文件将自动生成并放置在此目录中。

vendor 应用依赖的外部库。还包括插件子目录。如果应用冻结了 Rails,这些 gem 也会放在这里,位于 vendor/rails/ 下。此目录位于加载路径中。

下载工具