schutz gegen hacker
-
Guten Morgen.
Immer wieder lese das Hacker Angriffe auf Webseiten starten. Dazu habe ich mal eine Frage.
Nehmen wir mal an ichhabe eine WebSeite wo ich einen Benuter bereich eingerichtet habe. Also muss sich der Nutzer mit einem Benutzernamen und einem Passwort identifizieren. Erst wenn beides stimmt bekommt er Zugang. Wie würde ein Hacker an so eine Sache herangehen ? Also wie würde er es schaffen sich Zugang zu diesem Bereich zu verschaffen, wenn er nicht den Namen und das Passwort weiß.Hintergrund meiner Frage ist näh,lich ein umfangreiches Web Projekt - wo ich genau so einen Bereich einrichten will. Und nun denke ich über gewisse Schutzmaßnahmen nach. IM Allgemeinen interessiert es mich aber auch so.
Es ist aber KEINE kriminelle Absicht dahinter.Ich bedanke mich für eure Antworten
Und verbleibe mit einem fröhlichen
Ahoi
-
Eine Möglichkeit wären SQL Injections, das solltest du dir auf jeden Fall anschauen.
-
Vielen Dank. Gibt es da noch eine andere Möglichkeit ( mittels Brute Force)
-
Dafür würde ich dir folgendes Buch empfehlen:
PHP-Sicherheit: PHP/MySQL-Webanwendungen sicher programmieren
ISBN-10: 3898645355
ISBN-13: 978-3898645355
-
Danke für deinen Hinweis
-
Vielleicht muss ich meine Frage noch etwas ändern. Wie kann ich eine Webseite hacken
-
Es ist aber KEINE kriminelle Absicht dahinter.
-
Nein warum ?
Wenn ich wirklich eine WebSeite hacken will, dann würde ich es doch wohl nicht hier öffentlich bekanntgeben oder ?Nein wirklich nicht. ICh habe eine Seite und will mal versuchen sie zu knacken
-
Normalerweise werden sog. Exploits von Crackern (nicht Hackern -) ausgenutzt, d.h. Schwachstellen in der verwendeten Server-Software (z.B. Apache, IIS, ...)
SQL-Injection und Brute-Force sind nur oberflächliche Angriffe (d.h. es wird sich kurzfristig Zugang zum System geholt - normalerweise kann man damit aber nicht fremden Code nativ auf den Server einschleusen).
-
Aber ist SQL-Injection eigentlich nicht harmlos , denn man muss ja den Aufbau der Datenbank kenn. Oder täusche ich mich
-
Fischkopf2009 schrieb:
Aber ist SQL-Injection eigentlich nicht harmlos , denn man muss ja den Aufbau der Datenbank kenn. Oder täusche ich mich
Den Aufbau der DB kannst du dir ja holen, wenn/falls du die Antwort der SQL-Abfragen kriegst.
-
Der Aufbau der Datenbank ist nicht unbedingt notwendig zu wissen. Bei schlechter Programmierung reicht schon ein einfaches "OR 1=1" ... dahinter was zum auskommentieren und davor das Stringabschlusszeichen.
Jedes Eingabefeld, was ungeprüft in / aus der Datenbank kommt, kann man ausnutzen.
-
Okay also ich habe meine Seite jetzt so gestaltet, dass ich den Benutzer namen bereits vorgebe. Soll ein Froum für Studenten einer UNI werden. Mit der Matrikelnummer kommt man dann gleich in seinen fahcbereich.
Wenn ich im Passwort Feld nun OR'1'='1' hinzufüge bekomme ich vom Webserver :
Database error: Invalid SQL: Select studentenid, kurs FROM studenten WHERE matrikelnr='OR'1'='1''
MySQL Error: 1064 ( You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '1'='1''' at line 1)Kann ein Hacker damit etwas anfangen =
-
dann gib mal folgendes als nummer ein:
' OR 1 = 1 LIMIT 1 --
und ja, er kann damit was anfangen
-
Was macht der Befehl.
Es gibt ja keine leere Matrikel nummer in der Datenbank
-
setz es doch einfach mal in deinen query ein
dafür gibts mysql_real_escape
-
Bei eigenen PHP-Scripts musst du sämtliche Daten vom Benutzer sichern (z.B. durch das hier genannte mysql_real_escape). Das umfasst POST, GET und COOKIE, denn diese Daten kann der Benutzer manipulieren.
Wenn du irgendeinen Inhalt aus $_POST, $_GET oder $_COOKIE ungesichert in einer Datenbank-Query nutzt, dann hast du definitiv eine Sicherheitslücke.
Wenn Benutzer durch irgendwelche Eingaben MySQL-Syntaxfehler produzieren können, dann hast du auch definitiv eine Sicherheitslücke.
-
zwutz schrieb:
dann gib mal folgendes als nummer ein:
' OR 1 = 1 LIMIT 1 --
und ja, er kann damit was anfangen
Was kann man damit machen
-
Fischkopf2009 schrieb:
Okay also ich habe meine Seite jetzt so gestaltet, dass ich den Benutzer namen bereits vorgebe. Soll ein Froum für Studenten einer UNI werden. Mit der Matrikelnummer kommt man dann gleich in seinen fahcbereich.
Wenn ich im Passwort Feld nun OR'1'='1' hinzufüge bekomme ich vom Webserver :
Database error: Invalid SQL: Select studentenid, kurs FROM studenten WHERE matrikelnr='OR'1'='1''
MySQL Error: 1064 ( You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '1'='1''' at line 1)Kann ein Hacker damit etwas anfangen =
Cool, das sieht ja vielversprechend aus.
Poste doch mal die URL.
-
Was würdest du als nächstes machen und wie