Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
name_reverser — Aplicación Rails simple para demostrar la vulnerabilidad CVE-2013-0156 | Kitploit
Herramientas/GitHubGitHub/terracatta/name_reverser
Análisis de VulnerabilidadesExplotaciónExplotación de Aplicaciones WebPruebas de PenetraciónAprendizaje y Educación
GitHubterracatta/name_reverser

name_reverser

Aplicación Rails simple para demostrar la vulnerabilidad CVE-2013-0156

Ver Repositorio
hace 13 añosAún no revisado

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

== Bienvenido a Rails

Rails es un framework de aplicaciones web que incluye todo lo necesario para crear aplicaciones web respaldadas por bases de datos según el patrón Modelo-Vista-Controlador.

Este patrón divide la vista (también llamada presentación) en plantillas "tontas" que se encargan principalmente de insertar datos previamente preparados entre etiquetas HTML. El modelo contiene los objetos de dominio "inteligentes" (como Cuenta, Producto, Persona, Publicación) que contienen toda la lógica de negocio y saben cómo persistirse en una base de datos. El controlador maneja las solicitudes entrantes (como Guardar Nueva Cuenta, Actualizar Producto, Mostrar Publicación) manipulando el modelo y dirigiendo los datos a la vista.

En Rails, el modelo es manejado por lo que se conoce como una capa de mapeo objeto-relacional llamada Active Record. Esta capa te permite presentar los datos de las filas de la base de datos como objetos y adornar estos objetos de datos con métodos de lógica de negocio. Puedes leer más sobre Active Record en link:files/vendor/rails/activerecord/README.html.

El controlador y la vista son manejados por Action Pack, que maneja ambas capas mediante sus dos partes: Action View y Action Controller. Estas dos capas están agrupadas en un solo paquete debido a su fuerte interdependencia. Esto es diferente a la relación entre Active Record y Action Pack, que es mucho más separada. Cada uno de estos paquetes puede usarse de forma independiente fuera de Rails. Puedes leer más sobre Action Pack en link:files/vendor/rails/actionpack/README.html.

== Primeros pasos

  1. En la línea de comandos, crea una nueva aplicación Rails: rails new myapp (donde myapp es el nombre de la aplicación)

  2. Cambia al directorio myapp e inicia el servidor web: cd myapp; rails server (ejecuta con --help para opciones)

  3. Ve a http://localhost:3000/ y verás: "¡Bienvenido a bordo: estás usando Ruby on Rails!"

  4. Sigue las pautas para comenzar a desarrollar tu aplicación. Puedes encontrar los siguientes recursos útiles:

  • La Guía de inicio: http://guides.rubyonrails.org/getting_started.html
  • El libro Tutorial de Ruby on Rails: http://www.railstutorial.org/

== Depuración de Rails

A veces tu aplicación falla. Afortunadamente, hay muchas herramientas que te ayudarán a depurarla y ponerla de nuevo en marcha.

El primer lugar a revisar son los archivos de registro de la aplicación. Mantén comandos "tail -f" ejecutándose en server.log y development.log. Rails mostrará automáticamente información de depuración y tiempo de ejecución en estos archivos. La información de depuración también se mostrará en el navegador en las solicitudes desde 127.0.0.1.

También puedes registrar tus propios mensajes directamente en el archivo de registro desde tu código usando la clase logger de Ruby desde tus controladores. Ejemplo:

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

El resultado será un mensaje en tu archivo de registro similar a:

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

Más información sobre cómo usar el logger está en http://www.ruby-doc.org/core/

Además, la documentación de Ruby se puede encontrar en http://www.ruby-lang.org/. Hay varios libros disponibles en línea también:

  • Programming Ruby: http://www.ruby-doc.org/docs/ProgrammingRuby/ (Pickaxe)
  • Learn to Program: http://pine.fm/LearnToProgram/ (una guía para principiantes)

Estos dos libros te pondrán al día en el lenguaje Ruby y también en programación en general.

== Depurador

El soporte para depurador está disponible a través del comando debugger cuando inicias tu servidor Mongrel o WEBrick con --debugger. Esto significa que puedes interrumpir la ejecución en cualquier punto del código, investigar y cambiar el modelo, y luego, reanudar la ejecución. Necesitas instalar ruby-debug para ejecutar el servidor en modo de depuración. Con gems, usa sudo gem install ruby-debug. Ejemplo:

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

Así que el controlador aceptará la acción, ejecutará la primera línea y luego te presentará un prompt de IRB en la ventana del servidor. Aquí puedes hacer cosas como:

@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"

...y aún mejor, puedes examinar cómo funcionan realmente tus objetos en tiempo de ejecución:

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

Finalmente, cuando estés listo para reanudar la ejecución, puedes escribir "cont".

== Consola

La consola es un shell de Ruby, que te permite interactuar con el modelo de dominio de tu aplicación. Aquí tendrás todas las partes de la aplicación configuradas, tal como cuando la aplicación se está ejecutando. Puedes inspeccionar modelos de dominio, cambiar valores y guardar en la base de datos. Iniciar el script sin argumentos lo lanzará en el entorno de desarrollo.

Para iniciar la consola, ejecuta rails console desde el directorio de la aplicación.

Opciones:

  • Pasar el argumento -s, --sandbox revertirá cualquier modificación realizada en la base de datos.
  • Pasar un nombre de entorno como argumento cargará el entorno correspondiente. Ejemplo: rails console production.

Para recargar tus controladores y modelos después de iniciar la consola, ejecuta reload!

Puedes encontrar más información sobre irb en: link:http://www.rubycentral.org/pickaxe/irb.html

== dbconsole

Puedes ir directamente a la línea de comandos de tu base de datos mediante rails dbconsole. Te conectarás a la base de datos con las credenciales definidas en database.yml. Iniciar el script sin argumentos te conectará a la base de datos de desarrollo. Pasar un argumento te conectará a una base de datos diferente, como rails dbconsole production. Actualmente funciona con MySQL, PostgreSQL y SQLite 3.

== Descripción del contenido

La estructura de directorios predeterminada de una aplicación Ruby on Rails generada:

|-- 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 Contiene todo el código específico de esta aplicación en particular.

app/assets Contiene subdirectorios para imágenes, hojas de estilo y archivos JavaScript.

app/controllers Contiene controladores que deben nombrarse como weblogs_controller.rb para el mapeo automático de URL. Todos los controladores deben descender de ApplicationController, que a su vez desciende de ActionController::Base.

app/models Contiene modelos que deben nombrarse como post.rb. Los modelos descienden de ActiveRecord::Base por defecto.

app/views Contiene los archivos de plantilla para la vista que deben nombrarse como weblogs/index.html.erb para la acción WeblogsController#index. Todas las vistas usan sintaxis eRuby por defecto.

app/views/layouts Contiene los archivos de plantilla para los diseños que se usarán con las vistas. Esto modela el método común de encabezado/pie de página para envolver vistas. En tus vistas, define un diseño usando layout :default y crea un archivo llamado default.html.erb. Dentro de default.html.erb, llama a <% yield %> para renderizar la vista usando este diseño.

app/helpers Contiene ayudantes de vista que deben nombrarse como weblogs_helper.rb. Estos se generan automáticamente al usar generadores para controladores. Los ayudantes se pueden usar para encapsular funcionalidad para tus vistas en métodos.

config Archivos de configuración para el entorno de Rails, el mapa de enrutamiento, la base de datos y otras dependencias.

db Contiene el esquema de la base de datos en schema.rb. db/migrate contiene toda la secuencia de Migraciones para tu esquema.

doc Este directorio es donde se almacenará la documentación de tu aplicación cuando se genere usando rake doc:app

lib Librerías específicas de la aplicación. Básicamente, cualquier tipo de código personalizado que no pertenezca a controladores, modelos o ayudantes. Este directorio está en la ruta de carga.

public El directorio disponible para el servidor web. También contiene los despachadores y los archivos HTML predeterminados. Esto debe configurarse como DOCUMENT_ROOT de tu servidor web.

script Scripts auxiliares para automatización y generación.

test Pruebas unitarias y funcionales junto con fixtures. Al usar el comando rails generate, se generarán archivos de prueba de plantilla para ti y se colocarán en este directorio.

vendor Librerías externas de las que depende la aplicación. También incluye el subdirectorio plugins. Si la aplicación ha congelado rails, esas gemas también van aquí, bajo vendor/rails/. Este directorio está en la ruta de carga.

Descargar herramienta