[Video] SQL Injection

#0
30.03.2012, 13:34
...neu hier

Beiträge: 8
#1 Sehr gefährliche Sicherheitslücken können SQL-Injections darstellen, über diese der Angreifer Daten aus der Datenbank auslesen bzw. manipulieren kann.

Wie einfach solche Lücken ausgenutzt werden können, zeige ich auf diesem Video.

Hinweis: Das Ausnutzen solcher Lücken ist illegal, solange man keine Einwilligung des Betreibers hat.

YouTube Video (Link)


Poste Videos durch einfaches einfügen von Youtube / Vimeo Links in den Beiträgen!


Diese Angriffe können auch mit Tools automatisiert werden, sodass der Angreifer keine Kenntnisse der Angriffstechnik mehr haben muss.

YouTube Video (Link)


Poste Videos durch einfaches einfügen von Youtube / Vimeo Links in den Beiträgen!


YouTube Video (Link)


Poste Videos durch einfaches einfügen von Youtube / Vimeo Links in den Beiträgen!



Gruß
Seitenanfang Seitenende
30.03.2012, 14:10
Member
Avatar Xeper

Beiträge: 5291
#2

Zitat

Sehr gefährliche Sicherheitslücken können SQL-Injections darstellen, über diese der Angreifer Daten aus der Datenbank auslesen bzw. manipulieren kann.
Jo und alter Kaffee, viel interessanter ist doch wie man ordnungsgemäß programmiert dann können solche Lücken gar nicht entstehen.

OOP, Datenkapselung und jegliche Fremddaten (über HTTP GET/POST) sollten auch per regex gefiltert werden... dann kann gibts auch kein Problem.
__________
E-Mail: therion at ninth-art dot de
IRC: megatherion @ Freenode
Seitenanfang Seitenende
30.03.2012, 14:13
...neu hier

Themenstarter

Beiträge: 8
#3 Ja, natürlich ist es wichtig, zu wissen, wie man sich dagegen schützt.

Die Videos sollten auch nur zeigen, wie einfach es den Angreifern gemacht werden kann.

Wie genau soll dein Regex-Filter aussehen? Ich behaupte mal, Regex ist nicht die sicherste Lösung.

Wenn man Zahlen als Übergabeparameter hat, dann kann man auf die Funktion IntVal() in PHP zurückgreifen.

Bei Zeichenkette, ist man mit einer Kombination aus mysq_real_escape_string(utf8_encode($string)) gut beholfen.

Gruß
Seitenanfang Seitenende
30.03.2012, 14:44
Member
Avatar Xeper

Beiträge: 5291
#4

Zitat

Wie genau soll dein Regex-Filter aussehen? Ich behaupte mal, Regex ist nicht die sicherste Lösung.
Deine Behauptung ist falsch da regex durch ein geschloßenes Pattern restriktiv ist,
was das richtige Pattern ist hängt davon ab was du suchst bzw. filtern möchtest.
Bleibt also deiner Kreativität überlassen... ;)

Zitat

Wenn man Zahlen als Übergabeparameter hat, dann kann man auf die Funktion IntVal() in PHP zurückgreifen.
Könnte man tuen, ich halte aber nichts davon dafür explicit casting anzuwenden (da es nicht dazu gedacht ist, siehe oben).

Zitat

Bei Zeichenkette, ist man mit einer Kombination aus mysq_real_escape_string(utf8_encode($string)) gut beholfen.
Nicht unbedingt, warum sollte nun utf8_encode helfen? Dafür ist es doch gar nicht vorgesehen - wenn du eine Schraube in ein Gewinde drehen willst, nutzt du ja auch kein Hammer - du musst schon das richtige Werkzeug benutzen.

Edit:
Aber wie ich auch schon sagte, nicht nur regex sondern halt ein ordentliches Design - wer überall mal pro 200. Zeile irgendwo eine Zuweisung von POST/GET Werten macht liegt eh schwer daneben.
__________
E-Mail: therion at ninth-art dot de
IRC: megatherion @ Freenode
Seitenanfang Seitenende
30.03.2012, 15:01
...neu hier

Themenstarter

Beiträge: 8
#5 Das utf8_encode sollte gegen einen Bug im mysql_real_escape_string helfen, bei dem man über die Eingabe von invaliden UTF-Zeichen das Escapen umgehen konnte, und somit trotzdem ungefilterte Abfragen durchführen konnte.

Ich meine das irgendwo gelesen zu haben.

Bei den anderen Punkten gebe ich dir Recht.

Gruß
Seitenanfang Seitenende
Um auf dieses Thema zu ANTWORTEN
bitte erst » hier kostenlos registrieren!!

Folgende Themen könnten Dich auch interessieren: