[Video] SQL Injection |
||
---|---|---|
#0
| ||
30.03.2012, 13:34
...neu hier
Beiträge: 8 |
||
|
||
30.03.2012, 14:10
Member
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 |
|
|
||
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ß |
|
|
||
30.03.2012, 14:44
Member
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 |
|
|
||
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ß |
|
|
||
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)
Diese Angriffe können auch mit Tools automatisiert werden, sodass der Angreifer keine Kenntnisse der Angriffstechnik mehr haben muss.
YouTube Video (Link)
YouTube Video (Link)
Gruß