Ignorante WebSite-Betreiber
Freitag, 23. Januar 2009, 11:19 Uhr | Autor: ich
Ich habe mal wieder eine Lücke in einem CMS gefunden. Das Login-Script nimmt für Benutzername und Passwort ' or 1=1 -- an und schon ist man der Superadmin des Systems.
Meine E-Mail an den Betreiber wurde schnell beantwortet:
Wir arbeiten bereits an einer neuen Homepage, mit der wir spätestens Anfang
März online gehen möchten, deswegen möchten wir auch nicht mehr in das CMS
der alten Website investieren.
Investieren müßte man nur einen .htaccess-Schutz (de.wikipedia.org) im admin-Verzeichnis, aber wenn das schon zu viel ist…
Dabei ist noch erwähnenswert, das ein ganzes Filialnetz (europaweit) betroffen ist, denn auf deren Inhalte hat man nun auch vollen Zugriff.






Freitag, 23. Januar 2009, 14:42 Uhr
quer gefragt: heisst das nicht im selben atemzug, dass die login-daten im klartext in der datenbank landen ?
cx
Freitag, 23. Januar 2009, 15:16 Uhr
Nein nicht zwingend.
(Man gut das hier keiner mitliest… Blödsinn gelöscht…)
Eine DB-Query für die Abfrage nach Username und Password könnte auch bei verschlüsseltem Passwort ausgehebelt werden, wenn der Username nicht auf SQL-Injection gefiltert wird.
Unsicher wäre:
SELECT user, pass FROM usersWHERE user='$eingabe_user' AND pass='md5($eingabe_pass)'
Wenn nun für
$eingabe_user“' or 1=1 --” übertragen wird dann ergibt sich folgende DB-Query:SELECT user, pass FROM usersWHERE user='' or 1=1 -- ' AND pass='md5(123456)'
Die Kommentarzeichen (
--) führen dazu das der Rest, also die Passwortabfrage, nicht ausgeführt wird. Ein Passwort muß man i.d.R. eingeben, da oft auf leere Eingaben geprüft wird.Mit dem Passwort 123456 oder password kommt man oft auch ohne eine SQL-Injection-Lücke in einen Account rein… Die beste Programmierung hilft natürlich nicht gegen den Unsicherheitsfaktor Nummer 1 – den User.