injection SQL-Challange

Auf dieses Crackme bezogen in das User Name Feld, allgemein musst du es nur an den Server weiter geben und zwar so, dass der Server diesen Ausdruck ungefähr nach dem Schema "SELECT * FROM table WHERE user='$eingabe'" verarbeitet (also in der DB nach $eingabe sucht).
Wenn ein Feld Benutzername da ist, kann man einfach dieses benutzen. Alternativ (z.B. für automatisierung) bietet sich an, die HTTP Requests von Hand zu schreiben.
Wenn du jetzt als POST Parameter
Code:
' OR 'x' = 'x
mitschickst, ergibt sich:
SELECT * FROM table WHERE user='' OR 'x' = 'x'
Es wird dann nach dem Username " ' OR 'x' = 'x' " gesucht.Das ist immer richtig => Login.

Du musst dich immer in die DB hinein "versetzen". Was für Parameter erwartet das Script?Wie sieht der neue SQL-query aus? Was bewirkt er?

BTW: Ist das Interesse an dem Crackme verloren gegangen?
Wenn ich morgen Zeit hab versuch ich mal die Hashes von User No 2-4 zu finden und alle mal auf Gemeinsamkeiten zu überprüfen. Das muss doch zu schaffen sein...
 
Danke :)

Das meiste wusste ich, ich war mir nur nicht sicher, wie ich die Informationen übergeben soll ;)

Aber was kann man denn machen, wenn Addslashes aktiviert ist? Ich bin grad total planlos ?(
 
Da mit Addslashes der String
Code:
' OR 'x' = 'x
in
Code:
\' OR \'x\' = \'x
um geändert wird, werden die 's als Steuerzeichen ignoriert.
Es ist eigentlich ziemlich einfach SQL-Injection vor zu beugen (man muss nur addslashes verwenden), trotzdem ist es immer wieder ein Thema weil einfach schlampig programmiert und konfiguriert wird.

In diesem Crackme ist es z.B. so, dass das Passwort Feld vor Injection geschützt ist und das User Name Feld nicht. Das ermöglicht es zwar einem Angreifer die Sperre zu überwinden, macht es ihm aber nicht zu einfach.
 
Das Passwortfeld ist nicht gegen SQL-Injections geschützt ...

Die Abfrage sieht nicht so aus

SELECT bla FROM users WHERE username = '$u_name' AND pw = '$u_pw'

Sondern das ganze sieht warscheinlich so aus

SELECT pw FROM users WHERE username = '$u_name'

und anschließend wird das PW aus der DB mit dem eingegebenen PW verglichen ...
 
ich will ja nicht nerven aber wie habt ihr den ID_user und den Passwort-Hash rausbekommen ?(

mit dem ' OR 'x' = 'x bekomme ich nur eine Fehlermeldung dass das Passwort falsh war.


ich hab gar keine Erfahrung mit injection SQL. :rolleyes:
 
Hmm, jetzt hab ich den Hash glaub ich auch bald raus *rohebruteforcelaufenlass* :D

EDIT: jo, funzt ... Bin noch nicht fertig; könnte aber md5 sein (wäre scheisse, noch so viele Zeichen *gg*)
 
seid ihr schon irgendwie weitergekommen?
und irgendwie sieht das ganze für mich leicht danach aus als ob es gar nicht als offizielles hackit gedacht ist
 
ok, ich versteh die sprache da unten nicht :)
was mich jedoch grad wundert wie man bis zum hash gekommen ist?
man könnte zwar mit like arbeiten, und nach und nach versuchen den hash per bruteforce bekommen, aber ist das wirklich die einzige möglichkeit?
 
Hi, ich versuch mich auch grad dran.

Folgendes bringt einen um den Benutzernamen rum:
anything' or 'x'='x

Aber wie geht es dann weiter?
Mit HAVING 1=1 kann man hier nicht arbeiten...oder?
Aber was kommt als nächstes? Ist es überhaupt lösbar?
 
Zurück
Oben