Anmeldescript - Gefährlich?

SonMiko

Erfahrenes Mitglied
Hallo,

ich hab gedacht mit meinem Anmeldescript bin ich ziemlich sicher dran, aber das war wohl nicht der Fall - jemand hat mich (freundlicherweise) darauf hin gewiesen, dass ich die Daten im KLARTEXT versendet habe, also unkodiert (nix da MD5).
Ich hab immer gedacht HTML spuckt nur die Resultate aus und man könne nicht sehen was sich im PHP Bereich abspielt da dieser nur auf dem Server stattfindet...

Ich habe ein Formular mit den Angaben USER und PASS.
Dieses wird an eine andere PHP Datei versendet, wenn dort USER und PASS mit
meinen besagten übereinstimmen, wird ein Adminbereich per "include()" eingefügt.

Frage: Wie kann ein Hacker - oder eben der Typ denn sagen wie der Username und das Passwort war? Das ist mir total schleierhaft - ich will hier keinen Thread aufmachen "wie hacke ich ein Passwort" oder so, nein mich interessiert es einfach und irgendwie muss ich ja wissen wo das Wasser reinläuft sonst kann ich schlecht die Lücke stopfen.

Über eine Antworte würd' ich mich sehr freuen - am besten bevor das Boot mit Wasser vollgelaufen ist :-D...

Wie gesagt - Formular mit zwei Feldern, einem Submitbutton, sendet Daten an andere Datei - Diese überprüft $_POST['user'] und $_POST['pass'] mit zwei Angaben die in der Datei stehen (Variablen in PHP selber (wie kann man da schon rankommen... dachte ich jedenfalls...).

Vielen Dank und besten Gruß an Euch alle,

Euer Mike
 
Das Problem wäre z.B. eine "Man in the middle" attacke. Jemand liest also den Datenverkehr mit und kann das Passwort mitlesen. Als Alternative wäre eine RSA Authentifizierung möglich, hatte letztens auf einer PHP-Magazin Seite die Überschrift gelesen, sollte schnell zu finden sein per Google. Nachteil: Es geht nur mit JavaScript.

Mit HTTPS Verbindungen kenne ich mich noch nicht aus, aber ich denke das wäre die einfachere Methode. Das würde mich dann auch interessieren, wie man eine SSL Verbindung aufbaut für Login & Registrierung :)
 
Selbst wenn die Logindaten clientseitig verschlüsselt (oder mit md5: "gehasht") werden, ist man vor einer Man-in-the-middle-Attacke nicht sicher. Selbst wenn dieser "nur" die verschlüsselten Daten abfängt, kann er sich damit einloggen - dann schickt er eben die bereits verschlüsselten Daten zum Server... Das ist allerdings nur so, wenn der Algorithmus der Verschlüsselung statisch ist.

Eine clientseitige Verschlüsselung setzt aktiviertes JS auf der Clientseite voraus, das ist nicht immer gegeben (ja, wurde schon gesagt).

SSL ist die einfachste Methode. Um SSL zu ermöglichen, brauchst du als Programmierer nichts machen - das ist allein Sache der Serverkonfiguration (in der HTTPS eingeschalten sein muss). Du kannst als Programmierer höchstens alle HTTP-Anfragen automatisch auf HTTPS umleiten...
 
Ich habe zum Beispiel meinen Webspace gemietet und dadurch nicht 100% Kontrolle über den Webserver. Wie könnte man dies denn dann machen?
 
Versuch einfach mal via https://deine-domain.de auf deine Seite zuzugreifen... Wenn das nicht geht (warscheinlich geht's nicht), frag mal beim Support nach. Mach dir aber keine all zu großen Hoffnungen, bei gemieteten Webspace funktioniert HTTPS normalerweise nicht...
 
Stop stop stop...
Also mal langsam.
Vorerst danke für all die freundlichen Antworten und die rege Beteiligung.

Die Definition des "Man-In-The-Middle"-Angriffs ergibt sich laut Wikipedia bereits durch den Namen: Jemand steht zwischen zwei kommunizierenden Applikationen bzw. Geräten.
In diesem Falle also Client - Lauscher (so nenn ich ihn (warum ihn? ich kenne keine Hackerin)mal). - Server. Wie bitteschön soll der Lauscher denn MEINE Eingaben abgefangen haben? Das ist doch unmöglich. Er müsste täglich alles abhören und warten bis ich mich einlogge und dann, wenn ichs tue, wie kann er dann meine Daten abfangen?
Er ist doch nicht in meinem Lokalen Netzwerk - das Einzige das er weiss, ist, dass ich irgendwann zur IP des Servers zurückkommen werde - (Domaine quasi)... Denn diese ändert sich ja nicht. Schön und gut, und nun?
Jetzt sage ich dem Server "Hey ich heisse ADMINISTRATOR, mein Passwort lautet ADMIN" und klicke auf absenden. In dem Augenblick hat PHP die Daten auch schon abgeglichen und gibt mir grünes Licht. Wie und wann soll der Lauscher den Server nach meinen Daten befragt haben oder die Daten vom selbigen abgefangen haben?
Gibts da eine Funktion? Eine Request Funktion, oder Telnet () oder irgendwas womit man Befehle auf nem Server ausführen kann

Ich verstehe das prinzip nicht - also die Definition ist schön und gut, und bei WLAN leicht vorstellbar, aber nicht in diesem Fall.

Wie GENAU kann das ablaufen?
Wie kann jemand die Daten abfragen - ohne das der Server ihn kennt oder er Rechte hat.
Der Server sollte doch garnicht auf Befehle etc. reagieren - er beantwortet doch normalerweise nur Anfragen indem er angeforderte Dokumente zur Verfügung stellt, oder eben nicht. Wie kann ein Lauscher sine Anfrage so darstellen das er an die Nutzerdaten und Passwörter rankommt

Wäre echt dankbar für eine Erklärung.

MFG

Mike
 
Frage doch denjenigen mal, wie genau er an die Daten gekommen ist...wenn er so freundlich war, dich darauf hinzuweisen, hilft er die dir evtl. nochmal durch diese Information. :)
 
Hab ich - keine Reaktion.
Er sagte nur das er mich freundlich darauf hinweist - ich denke auch nicht das er böse Absichten hatte, schließlich hat er mir ja bescheid gesagt und hätte längst alles löschen oder verändern bzw. manipulieren können.
Meine Verzeichnisse waren wohl ungeschützt, und man konnte sich alle Dateien anzeigen lassen (jetzt nicht mehr). Aber das hilft doch auch nicht sonderbar weiter, oder?

Mich interessiert mal, ist es möglich eine PHP Datei auf ANDEREM WEGE als per FTP in Quellcode Form vom Server zu laden?
Sobald man die Datei läft, wird doch nur ausgegeben, was der PHP Compiler zuvor berechnet hat oder?
 
Du schickst doch deinen Benutzernamen und das Passwort im Klartext zum Server. PHP ist eine serverseitige Scriptsprache, von daher läuft alles erst auf dem Server ab, z.B. eine Hashwert Bildung. Man-in-the-middle kann z.B. ein Knotenpunkt in einem Netzwerk sein, also ein Router (Server) im Netzwerk. Durch auslesen der TCP/IP-Pakete kann er im Data-Frame diese "Wörter" lesen, ohne dass er sie entschlüsseln müsste.

Für SSL Verbindungen via HTTPS müsste er diese erst decodieren, was schwierig sein sollte. Allerdings kann er die Anfrage weiter zum Server leiten und sich ebenfalls anmelden (die Gefahr besteht allerdings immer).

Solltest du dich allerdings NUR im LAN aufhalten, kann von außen (dem Internet) nur jemand auf deine Webapplikation zugreifen, wenn dein LAN nicht richtig geschützt ist. Wenn die Webapplikation im Internet ist, musst du wohl deine Scripts anpassen.

@Sven Mintel: meine neue .de Domain wird derzeit noch registriert. Auf meiner alten .de Domain fragt Firefox, ob ich das Zertifikat annehmen will, allerdings ändert sich die Adresszeile von dem Gelb (sichere Verbindung) danach wieder auf Weiß (Standard). Ich hatte mir überlegt, die Anmeldung & den Login mittels RSA zu verwenden - sollte SSL gehen würde ich das verwenden.
 
Hallo,

sagt dir der Begriff SQL-Injection etwas.
Es könnte ja durchaus sein, dass dein "Angreifer" eben genau dieses gemacht hat um Zugang zu deinem System zu erhalten. Auch weisen ca. 90% aller Loginscripts den selben Fehler auf. Sie sind unsicher was die Behandlung angeht.
BrutForce (also das Ausprobieren von Passwörtern im großen Stil) wäre auch denkbar.
Auch musst du dich selbst an der Nase packen - ist dein Passwort sicher oder besteht es nur aus einem Namen oder einem Geburtsdatum oder so.

Ein weiterer Ansatzpunkt wäre - du hast gesagt bei dir waren plötzlich alle Dateien eines Verzeichnises zu sehen das könnte auch daher rühren, dass dein Serveradmin etwas am Server gemacht hat und (zumindest kurzzeitig) der PHP-Interpreter nicht oder nicht richtig gelaufen ist. Wenn der PHP-Interpreter nicht läuft dann werden PHP-Scripte zum Download angeboten - der "Angreifer" hat also Quasi deine Sourcecodes erhalten und somit die Passwörter zur MySQL-Datenbank etc.

Noch ein Ansatzpunkt wäre schlicht und ergreifend ein unsicheres Script welches dem "Angreifer" erlaubt hat ein FTP-PHP-Script auf deinem Webspace zu installieren - somit hat er dann Zugriff auf deinen Server wie du nur eben über PHP (nennt sich WebFTP).

Ich würde dir empfehlen schau dir mal deinen Webspace genauer an ob dort evtl Dateien liegen welche nicht von dir sind. Vorsicht es gibt FTP-Programme (WS-FTP glaube ich gehört dazu) die zeigen versteckte Dateien nicht an. Wenn du dir nicht sicher bist wende dich an einen Profi die finden sowas normalerweise binnen wenigen Minuten. Ich kann dir da einen guten nennen - wenn du willst sende ich dir die Kontaktdaten per PM

So ich hoffe, dass ich helfen konnte.
 
Zurück