[gelöst]Hackme (Website)

Hallo an Alle,

habe eben zum Zeitvertreib ein kleines Hackme erstellt. Ziel ist es in den geschützen Bereich zu gelangen indem ein Code zu sehen ist.

Die Aufgabe gilt als gelöst wenn man den richtigen Code kennt. :)

http://hackme.bunnxchat.de/


Obwohl ich denke, dass ich die Sicherheitslücke auf das Hackme begrenzt habe (nach meinem Wissen), bitte ich euch nicht außerhalb des Hackmes zu fungieren. Weil da hängt auch mein echtes Projekt dran.

Viel Spaß.
 
Ich hab mal ne kleine Theorie, bei der ich mir aber noch nicht sicher bin. :D

Die Galerie ist die einzige Seite, die mit einem Include geladen wird, und die Error-Messages werden nicht abgefangen oder gefiltert. Allerdings wird das .php hinter dem GET-Parameter ignoriert, und der Ordner "secure" lässt sich so nicht laden. Wahrscheinlich müsste man noch ein bisschen dran rumexperimentieren - dass es was mit dem (nicht funktionierendem Gästebuch zu tun hat, ist auch nicht auszuschließen. :D
 
Ja das war ein Freetemplate... da hab ich schnell den Beispieltext rausgehaun und eher funktionalen als stylistisch korrekten Code reingewürfelt. Hab sogar den öffnenden html Tag ausversehen gelöscht. :D

Wenn sich die Sache ner gewissen Beliebtheit erfreut, rutsch ich nochmal mit SEO Methoden drüber...
 
Du kannst alle Ordner sehen die du benötigst.

Habe mir mal die URIs in den Logs angesehen. Mir liegen Tipps auf der Zunge weil es immer mal arschknapp war. Jemand hatte sogar schon die Lösung und das MEHRMALS doch es fehlte ein winziger Schritt den man Local machen muss.

Naja ich sag nix ;)
MfG John the ripper
 
Gut :) aber ich belass es mal bei helf done weil:
John the Ripper braucht ohne Wordlist ~13 Sekunden.

@mime

Wie geht das? oO
Weil der String doppelt im GET-Wert vorkommt reicht ne 1-fach Filterung nicht aus wenn man die Reihenfolge beachtet oder wie? Genial.. wär ich niemals draufgekommen. Merk ich mir.
 
Zuletzt bearbeitet:
@mime

Wie geht das? oO
Durch das Doppelinclude und weil der String doppelt im GET-Wert vorkommt reicht ne 1-fach Filterung nicht aus oder wie? Genail.. wär ich niemals draufgekommen.
Du machst (vermutlich) irgendwas in der Art in deinem Script.

PHP:
$file = str_replace(".php","",$file);
Wenn du von "index..phpphp" jetzt ".php" entfernst, was bleibt übrig? Ganz genau, ".php". Das nun unter "secure" tatsächlich eine index.php existiert konnte man zwar erahnen, aber das war dann doch Glück.

Micha
 
Du machst (vermutlich) irgendwas in der Art in deinem Script.

PHP-Code:
$file = str_replace(".php","",$file);

Wenn du von "index..phpphp" jetzt ".php" entfernst, was bleibt übrig? Ganz genau, ".php". Das nun unter "secure" tatsächlich eine index.php existiert konnte man zwar erahnen, aber das war dann doch Glück.
Ok ne äußerst Sinnvolle Lektion, heißt man muss die Reihenfolge der Filterregeln beachten. Werde ich beim scripten demnächst drauf achten. Im Hackme lass ich es drin, weil es ja auch eine gute Lösung ist.
Aber...
habe ja den Server Root-pfad unterdrückt indem ich "home" ersetze das man nicht in alle Ordner kommt sondern nur ins Crackme + Unterordner...

d.h.:
index.php?include=/ho.phpme/www/web104/html/lina/secure/.htpasswd

würde dennoch funktionieren, wenn man "home" vor ".php" ersetzt. Mach ich zwar nicht, aber so schnell kanns gehen.

Und deswegen ist das Crackme überhaupt sicher im Bezug auf mein Hauptprojekt? :confused:

Edit: /index.php?include=.http:.php./c wird zu ../c Daher unsicher.

Sry mime deine Lösung ist nicht mehr gültig weil ich damit meine richtige Websit gefährde. Siehe Spoiler. :(
 
Zuletzt bearbeitet:
Ok ne äußerst Sinnvolle Lektion, heißt man muss die Reihenfolge der Filterregeln beachten. Werde ich beim scripten demnächst drauf achten.

Du solltest in Zukunft nach Möglichkeit darauf verzichten, Userinput direkt in einem include() zu benutzen. Besser ist da sowas:

PHP:
<?php

$file = $_GET['include'];

switch($file) {

  case "gallery":
  include("gallery.php");
  break;

  case "guestbook":
  include("guestbook.php");
  break;

  default:
  include("main.php");
  break;

}  

?>
Hier ein sehr einfaches Tutorial...

http://www.web-tuts.de/advanced-local-und-remote-file-inclusion.html

Micha
 
Danke. Aber ich include nie Usereingaben direkt, das war nur im zuge des Hackme. Bloß ging darum da das Hackme in einem Unterordner zu meinem Forum liegt, dass man nicht eine Ebene drunter zugreifen kann. Also die Sicherheitslücke auf das Hackme begrenzen.

Ich bin eben da bei ein 2.Level zu coden. Aber diesmal werde ich die Lücke vollständig simullieren (also Debugmeldungen, ...) weil die "Level 2" - Sicherheitslücke lasse ich nicht auf meinem Webhoster zu. :D
 
Zurück
Oben