Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
name_reverser — Rails-приложение Silly для демонстрации уязвимости CVE-2013-0156 | Kitploit
Инструменты/GitHubGitHub/terracatta/name_reverser
Анализ уязвимостейЭксплуатацияЭксплуатация веб-приложенийТестирование на ПроникновениеОбучение и Образование
GitHubterracatta/name_reverser

name_reverser

Rails-приложение Silly для демонстрации уязвимости CVE-2013-0156

Репозиторий
13 лет назадЕщё не проверено

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

== Добро пожаловать в Rails

Rails — это фреймворк для веб-приложений, который включает всё необходимое для создания веб-приложений на основе базы данных в соответствии с шаблоном Model-View-Control.

Этот шаблон разделяет представление (view, также называемое presentation) на «глупые» шаблоны, которые в первую очередь отвечают за вставку заранее подготовленных данных между 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 и запустите веб-сервер: 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

Иногда ваше приложение работает неправильно. К счастью, существует множество инструментов, которые помогут вам отладить его и вернуть на рельсы.

Первое, что стоит проверить, — это файлы журналов приложения. Держите команды «tail -f» запущенными для server.log и development.log. Rails будет автоматически записывать в эти файлы отладочную информацию и сведения о времени выполнения. Отладочная информация также будет отображаться в браузере для запросов с адреса 127.0.0.1.

Вы также можете записывать собственные сообщения непосредственно в файл журнала из своего кода, используя класс logger в Ruby внутри ваших контроллеров. Пример:

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. При использовании gems выполните 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, который, в свою очередь, наследуется от ActionController::Base.

app/models Содержит модели, которые должны называться наподобие post.rb. По умолчанию модели наследуются от ActiveRecord::Base.

app/views Содержит файлы шаблонов для представления, которые должны называться наподобие weblogs/index.html.erb для действия WeblogsController#index. По умолчанию все представления используют синтаксис 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 Библиотеки, специфичные для приложения. По сути, любой пользовательский код, который не относится к контроллерам, моделям или хелперам. Этот каталог находится в пути загрузки (load path).

public Каталог, доступный для веб-сервера. Также содержит диспетчеры и файлы HTML по умолчанию. Он должен быть установлен как DOCUMENT_ROOT вашего веб-сервера.

script Вспомогательные скрипты для автоматизации и генерации.

test Модульные и функциональные тесты, а также фикстуры. При использовании команды rails generate для вас будут сгенерированы шаблонные тестовые файлы и помещены в этот каталог.

vendor Внешние библиотеки, от которых зависит приложение. Также включает подкаталог plugins. Если в приложении используется замороженный Rails (frozen rails), эти гемы также размещаются здесь, в каталоге vendor/rails/. Этот каталог находится в пути загрузки (load path).

Скачать инструмент