Page 1 of 1

Sicherheitslücke

Posted: 19 Aug 2008, 05:16
by Bugreporter
Hi! Ich weiß nicht, ob dies der beste Platz ist, euch das mitzuteilen, aber ich wuesste nicht, wo sonst ich euch erreichen kann...

Stichwort: SQL-Injektion!!
Gebt mal unter http://trashmail.net/ eine Email Adresse mit diesem ' Zeichen ein. Sofort tritt ein Fehler auf.
Mit speziellen Anfragen kann ein Boesewicht dann eure Datenbank manipulieren, oder im schlimmsten Falle sogar euren Server uebernehmen!
Ihr macht es dem Angreifer sogar besonders leicht, da noch zusaetzlich die Fehlermeldung eingeblendet wird!

Mehr Infos dazu gibt euch Wikipedia. http://de.wikipedia.org/wiki/SQL-Injektion
Ihr koennt euch ganz einfach schuetzen, indem ihr Anfragen mit mysql_real_escape_string() behandel. Mehr Info's hier:
http://de.php.net/manual/de/function.my ... string.php

Ich hoffe ich konnte euch helfen!!
Gruss
euer Bugreporter :D

Re: Sicherheitslücke

Posted: 19 Aug 2008, 16:40
by Admin
Bugreporter wrote:Hi! Ich weiß nicht, ob dies der beste Platz ist, euch das mitzuteilen, aber ich wuesste nicht, wo sonst ich euch erreichen kann...

Stichwort: SQL-Injektion!!
Gebt mal unter url]http://trashmail.net/[/url] eine Email Adresse mit diesem ' Zeichen ein. Sofort tritt ein Fehler auf.
Mit speziellen Anfragen kann ein Boesewicht dann eure Datenbank manipulieren, oder im schlimmsten Falle sogar euren Server uebernehmen!
Ihr macht es dem Angreifer sogar besonders leicht, da noch zusaetzlich die Fehlermeldung eingeblendet wird!

Mehr Infos dazu gibt euch Wikipedia. http://de.wikipedia.org/wiki/SQL-Injektion
Ihr koennt euch ganz einfach schuetzen, indem ihr Anfragen mit mysql_real_escape_string() behandel. Mehr Info's hier:
http://de.php.net/manual/de/function.my ... string.php

Ich hoffe ich konnte euch helfen!!
Gruss
euer Bugreporter :D
Hallo,

vielen Dank fü�die Aufmerksamkeit und der Müh�
Es war tatsäch�ch ein Bug. Dabei wurde zwar der String vorher auf Gülti�eit gescannt (mit ereg), nur es wurde dabei ein Flag von 0 auf 1 gesetzt (ob dieser String gültig�ar).
Später k� ein weiterer Check wo dann das mysql_real_escape_string(...) fehlte (obwohl diese Funktion so gut wie überall�mplementiert ist) vergessen.
Jetzt habe ich das mysql_real_escape_string implementiert und zusätzlich �ch ein return nach dem String Check eingebaut. D.h. bei falschen Zeichen sollte man erst gar nicht zum MySQL Befehl kommen können.

I�Fall einer erfolgreichen Hackingattacke lässt sich �r Source Code im Normalfall sowieso nicht ändern: Der�ode liegt auf einer Schreibgeschützten Parti�on. Allerdings nur im Normalfall. :-)

Gruss,
Stephan