Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Hacker SQL Injection? (https://www.delphipraxis.net/168636-hacker-sql-injection.html)

youuu 1. Jun 2012 08:43

Hacker SQL Injection?
 
Hi,

gerade hat jemand wie ich vermute eine SQL Injection auf meinen Server versucht.

Dieser Code wurde im Kotaktformular eingegeben:

\' declare @q varchar(8000) select @q = 0x57414954464F522044454C4159202730303A30303A313527 exec(@q) --

Kann jemand dazu genaueres sagen? Und wie man das verhindert?

Kontaktformular solange offline gesetzt.


Edit:

Das habe ich bislang herrausgefunden:

"That means

select WAITFOR DELAY '00:00:15'--

Hacker tried use waiting functions and analyze response times to test if blind SQL injection is possible. "

jfheins 1. Jun 2012 09:29

AW: Hacker SQL Injection?
 
Zitat:

Kann jemand dazu genaueres sagen? Und wie man das verhindert?
Die Tatsache dass du den String so erhalten hast lässt ja schonmal hoffen ;-)
Zur Frage: Was soll verhindert werden?
Die Eingabe so einer Zeichenfolge kann man kaum verhindern. Es gibt leider böse Menschen und es gibt auch böse Menschen mit SQL Kentnissen und Internetzugang. Von irgendwelchen Javascript Validierungen würde ich abraten, das bringt nichts.

Was man natürlich verhindern kann ist, dass durch solche Eingaben Schaden angerichtet wird. Dafür ist eine sorgsame Prüfung auf Serverseite Pflicht. Jede Usereingabe muss als Angriffsversuch eingestuft werden und darf keinesfalls einfach so einer Datenbank übergeben werden. Geeignete Gegenmaßnahmen sind z.B. Datenbankabfragen mit Parametern. Um da genaueres sagen zu können, wäre ein Blick auf die relevante Stelle im Code praktisch.

youuu 1. Jun 2012 09:35

AW: Hacker SQL Injection?
 
Eine Überprüfung des eingegeben Strings auf "SQL Statements" und bei Findung die Anfrage nicht absenden ist auch eine Möglichkeit?
Das ging mir gerade als erstes durch den Kopf.

Phoenix 1. Jun 2012 09:46

AW: Hacker SQL Injection?
 
Ich gehe davon aus, dass die Anfrage gar nicht erst in einer Datenbank landet sondern direkt per Mail verschickt wird?

Dann ist das kein Sicherheits-Problem, sondern eher ein nerviges 'Spam-Like' Problem.

Viele dieser Angriffe sind automatisiert. Das heisst da läuft irgendwo ein Tool und probiert die Dinger automatisch durch, ohne User-eingabe. Meistens scannen die Tools die Webseite, erkennen die Formularfelder und führen einen Post darauf durch.

Du könntest das Formular z.B. so absichern, dass Du ein Eingabefeld mit type="hidden" in das Formular packst und dort einen Wert reinschreibst. Ein Javascript auf der Seite nimmt das Eingabefeld und schreibt dort einen anderen Wert rein. Beim Auswerten des Formulars schaust Du, ob der ursprüngliche oder der andere Wert zurück kommt - wenn es nicht der neue war, war das niemand mit einem Browser, und die Eingabe kann verworfen werden.

Somit bekommst Du höchstens noch manuelle Angriffsversuche mit.

youuu 1. Jun 2012 09:49

AW: Hacker SQL Injection?
 
Hm und bei deaktiviertem Javascript, wäre dann aber auch bei einer echten Anfrage ein Verwerfung (Auch wenn es glaube ich selten deaktiviert ist).

Bernhard Geyer 1. Jun 2012 09:54

AW: Hacker SQL Injection?
 
Zitat:

Zitat von youuu (Beitrag 1169039)
Hi,

gerade hat jemand wie ich vermute eine SQL Injection auf meinen Server versucht.

Dieser Code wurde im Kotaktformular eingegeben:

\' declare @q varchar(8000) select @q = 0x57414954464F522044454C4159202730303A30303A313527 exec(@q) --

Kann jemand dazu genaueres sagen? Und wie man das verhindert?

Eingabe wirst du schlecht verhindern können. Aber solange du alle DB-Abfragen/Queries per Prepared Statement laufen lässt braucht dich das nicht stören. Solltest du aber irgendwas ohne prepared Statement laufen lassen ...

youuu 1. Jun 2012 10:00

AW: Hacker SQL Injection?
 
Ah ok, das mach ich sowieso immer, da wir noch eine Suchanfrage besitzen.

Dann muss ich mir keine Sorgen machen :)


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:19 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz