Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
name_reverser — Einfache Rails-App zur Demonstration der Sicherheitslücke CVE-2013-0156 | Kitploit
Tools/GitHubGitHub/terracatta/name_reverser
SchwachstellenanalyseExploitationWebanwendungs-ExploitationPenetrationstestsLernen & Bildung
GitHubterracatta/name_reverser

name_reverser

Einfache Rails-App zur Demonstration der Sicherheitslücke CVE-2013-0156

Repository anzeigen
vor 13 JahrenNoch nicht geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

== Willkommen bei Rails

Rails ist ein Webanwendungs-Framework, das alles enthält, was benötigt wird, um datenbankgestützte Webanwendungen nach dem Model-View-Control-Muster zu erstellen.

Dieses Muster teilt die Ansicht (auch Präsentation genannt) in "dumme" Vorlagen auf, die hauptsächlich dafür verantwortlich sind, vorbereitete Daten zwischen HTML-Tags einzufügen. Das Modell enthält die "intelligenten" Domänenobjekte (wie Account, Product, Person, Post), die die gesamte Geschäftslogik enthalten und wissen, wie sie sich in einer Datenbank speichern können. Der Controller verarbeitet die eingehenden Anfragen (wie Save New Account, Update Product, Show Post), indem er das Modell manipuliert und Daten an die Ansicht weiterleitet.

In Rails wird das Modell von einer sogenannten objektrelationalen Abbildungsschicht namens Active Record behandelt. Diese Schicht ermöglicht es, die Daten aus Datenbankzeilen als Objekte darzustellen und diese Datenobjekte mit Geschäftslogikmethoden auszustatten. Weitere Informationen zu Active Record finden Sie unter link:files/vendor/rails/activerecord/README.html.

Der Controller und die Ansicht werden vom Action Pack verwaltet, das beide Schichten durch seine beiden Teile behandelt: Action View und Action Controller. Diese beiden Schichten sind aufgrund ihrer starken gegenseitigen Abhängigkeit in einem einzigen Paket gebündelt. Dies unterscheidet sich von der Beziehung zwischen Active Record und Action Pack, die viel getrennter ist. Jedes dieser Pakete kann unabhängig von Rails verwendet werden. Weitere Informationen zum Action Pack finden Sie unter link:files/vendor/rails/actionpack/README.html.

== Erste Schritte

  1. Erstellen Sie an der Eingabeaufforderung eine neue Rails-Anwendung: rails new myapp (wobei myapp der Anwendungsname ist)

  2. Wechseln Sie in das Verzeichnis myapp und starten Sie den Webserver: cd myapp; rails server (führen Sie mit --help für Optionen aus)

  3. Gehen Sie zu http://localhost:3000/ und Sie werden sehen: "Willkommen an Bord: Sie fahren Ruby on Rails!"

  4. Folgen Sie den Richtlinien, um mit der Entwicklung Ihrer Anwendung zu beginnen. Die folgenden Ressourcen sind hilfreich:

  • Die Erste-Schritte-Anleitung: http://guides.rubyonrails.org/getting_started.html
  • Ruby on Rails Tutorial Buch: http://www.railstutorial.org/
  • == Fehlersuche in Rails

    Manchmal läuft Ihre Anwendung falsch. Glücklicherweise gibt es viele Werkzeuge, die Ihnen helfen, sie zu debuggen und wieder auf die Schienen zu bringen.

    Der erste Bereich, den Sie überprüfen sollten, sind die Anwendungsprotokolldateien. Lassen Sie "tail -f"-Befehle auf server.log und development.log laufen. Rails zeigt automatisch Debugging- und Laufzeitinformationen in diesen Dateien an. Debugging-Informationen werden auch im Browser bei Anfragen von 127.0.0.1 angezeigt.

    Sie können auch eigene Nachrichten direkt in die Protokolldatei aus Ihrem Code heraus protokollieren, indem Sie die Ruby-Logger-Klasse in Ihren Controllern verwenden. Beispiel:

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

    Das Ergebnis wird eine Nachricht in Ihrer Protokolldatei sein, etwa so:

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

    Weitere Informationen zur Verwendung des Loggers finden Sie unter http://www.ruby-doc.org/core/

    Außerdem finden Sie die Ruby-Dokumentation unter http://www.ruby-lang.org/. Es sind auch mehrere Bücher online verfügbar:

    • Programmieren mit Ruby: http://www.ruby-doc.org/docs/ProgrammingRuby/ (Pickaxe)
    • Lernen zu programmieren: http://pine.fm/LearnToProgram/ (ein Anfängerleitfaden)

    Diese beiden Bücher bringen Sie auf den neuesten Stand der Ruby-Sprache und auch des Programmierens im Allgemeinen.

    == Debugger

    Debugger-Unterstützung ist über den debugger-Befehl verfügbar, wenn Sie Ihren Mongrel- oder WEBrick-Server mit --debugger starten. Das bedeutet, dass Sie die Ausführung an jedem Punkt im Code unterbrechen, das Modell untersuchen und ändern und dann die Ausführung fortsetzen können! Sie müssen ruby-debug installieren, um den Server im Debugging-Modus zu starten. Mit Gems verwenden Sie sudo gem install ruby-debug. Beispiel:

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

    Der Controller akzeptiert also die Aktion, führt die erste Zeile aus und zeigt dann einen IRB-Prompt im Serverfenster an. Hier können Sie Dinge tun wie:

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

    ...und noch besser, Sie können untersuchen, wie Ihre Laufzeitobjekte tatsächlich funktionieren:

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

    Schließlich können Sie, wenn Sie bereit sind, die Ausführung fortzusetzen, "cont" eingeben.

    == Konsole

    Die Konsole ist eine Ruby-Shell, mit der Sie mit dem Domänenmodell Ihrer Anwendung interagieren können. Hier sind alle Teile der Anwendung konfiguriert, genau wie wenn die Anwendung läuft. Sie können Domänenmodelle inspizieren, Werte ändern und in der Datenbank speichern. Das Starten des Skripts ohne Argumente startet es in der Entwicklungsumgebung.

    Um die Konsole zu starten, führen Sie rails console aus dem Anwendungsverzeichnis aus.

    Optionen:

    • Die Übergabe des Arguments -s, --sandbox macht alle an der Datenbank vorgenommenen Änderungen rückgängig.
    • Die Übergabe eines Umgebungsnamens als Argument lädt die entsprechende Umgebung. Beispiel: rails console production.

    Um Ihre Controller und Modelle nach dem Starten der Konsole neu zu laden, führen Sie reload! aus.

    Weitere Informationen zu irb finden Sie unter: link:http://www.rubycentral.org/pickaxe/irb.html

    == dbconsole

    Sie können direkt zur Befehlszeile Ihrer Datenbank gelangen, indem Sie rails dbconsole verwenden. Sie werden mit der Datenbank unter Verwendung der in database.yml definierten Anmeldeinformationen verbunden. Das Starten des Skripts ohne Argumente verbindet Sie mit der Entwicklungsdatenbank. Die Übergabe eines Arguments verbindet Sie mit einer anderen Datenbank, wie rails dbconsole production. Funktioniert derzeit für MySQL, PostgreSQL und SQLite 3.

    == Beschreibung der Inhalte

    Die standardmäßige Verzeichnisstruktur einer generierten Ruby on Rails-Anwendung:

    |-- 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 Enthält den gesamten Code, der für diese spezielle Anwendung spezifisch ist.

    app/assets Enthält Unterverzeichnisse für Bilder, Stylesheets und JavaScript-Dateien.

    app/controllers Enthält Controller, die wie weblogs_controller.rb benannt sein sollten, für die automatisierte URL-Zuordnung. Alle Controller sollten von ApplicationController abgeleitet sein, der selbst von ActionController::Base abgeleitet ist.

    app/models Enthält Modelle, die wie post.rb benannt sein sollten. Modelle erben standardmäßig von ActiveRecord::Base.

    app/views Enthält die Vorlagendateien für die Ansicht, die wie weblogs/index.html.erb für die Aktion WeblogsController#index benannt sein sollten. Alle Ansichten verwenden standardmäßig die eRuby-Syntax.

    app/views/layouts Enthält die Vorlagendateien für Layouts, die mit Ansichten verwendet werden. Dies modelliert die übliche Header/Footer-Methode zum Umwickeln von Ansichten. Definieren Sie in Ihren Ansichten ein Layout mit layout :default und erstellen Sie eine Datei namens default.html.erb. Rufen Sie in default.html.erb <% yield %> auf, um die Ansicht mit diesem Layout zu rendern.

    app/helpers Enthält View-Helfer, die wie weblogs_helper.rb benannt sein sollten. Diese werden automatisch für Sie generiert, wenn Sie Generatoren für Controller verwenden. Helfer können verwendet werden, um Funktionalität für Ihre Ansichten in Methoden zu kapseln.

    config Konfigurationsdateien für die Rails-Umgebung, die Routenzuordnung, die Datenbank und andere Abhängigkeiten.

    db Enthält das Datenbankschema in schema.rb. db/migrate enthält die gesamte Sequenz von Migrationen für Ihr Schema.

    doc In diesem Verzeichnis wird Ihre Anwendungsdokumentation gespeichert, wenn sie mit rake doc:app generiert wird.

    lib Anwendungsspezifische Bibliotheken. Im Grunde jede Art von benutzerdefiniertem Code, der nicht zu Controllern, Modellen oder Helfern gehört. Dieses Verzeichnis befindet sich im Ladepfad.

    public Das Verzeichnis, das für den Webserver verfügbar ist. Enthält auch die Dispatcher und die standardmäßigen HTML-Dateien. Dies sollte als DOCUMENT_ROOT Ihres Webservers festgelegt werden.

    script Hilfsskripte für Automatisierung und Generierung.

    test Unit- und Funktionstests zusammen mit Fixtures. Wenn Sie den Befehl rails generate verwenden, werden Vorlagentestdateien für Sie generiert und in diesem Verzeichnis abgelegt.

    vendor Externe Bibliotheken, von denen die Anwendung abhängt. Enthält auch das Unterverzeichnis plugins. Wenn die App eingefrorene Rails hat, kommen diese Gems ebenfalls hierher, unter vendor/rails/. Dieses Verzeichnis befindet sich im Ladepfad.

    Tool herunterladen