SQL Injection
am 29.08.2006 14:00:47 von Philipp Uffhaus
Hallo,
ich habe davon gelesen das es diese gibt.
Nun habe ich viele Projekte auf meinem PC und wollte mal schauen wie es
funktioniert damit ich meine Seiten eben noch sichere machen kann.
Ich habe es ausprobiert und so gemacht wie es auf vielen Seiten steht,
jedoch bin ich damit nicht zum Erfolg gekommen.
Also ich konnte nichts auslesen bzw. in meiner MySQL Datenbank ändern.
Es geht ja über die URL. Geht solch eine SQL Injection auch über Formulare
die mit einer MySQL Abfrage verbunden sind?
Habe ich was falsch gemacht, weil ich habe gegen solch einen Angriff meine
Seite noch nicht geschützt, von daher müsste es doch eigtl. Funktionieren
oder?
--
mfg Philipp
Re: SQL Injection
am 29.08.2006 14:13:18 von Gregor Kofler
Philipp Müller meinte:
> Hallo,
> ich habe davon gelesen das es diese gibt.
Ja. Gibt es.
> Nun habe ich viele Projekte auf meinem PC und wollte mal schauen wie es
> funktioniert damit ich meine Seiten eben noch sichere machen kann.
>
> Ich habe es ausprobiert und so gemacht wie es auf vielen Seiten steht,
> jedoch bin ich damit nicht zum Erfolg gekommen.
> Also ich konnte nichts auslesen bzw. in meiner MySQL Datenbank ändern.
Vielleicht sollte das auch ein "Profi" dieses Faches machen. Probieren
braucht man eigentlich nicht - etwas Mitdenken bei den Erläuterungen
reicht voll und ganz. Dass man auch seine eigenen Skripte durchblickt,
setze ich voraus.
> Es geht ja über die URL. Geht solch eine SQL Injection auch über Formulare
> die mit einer MySQL Abfrage verbunden sind?
Ja.
> Habe ich was falsch gemacht, weil ich habe gegen solch einen Angriff meine
> Seite noch nicht geschützt, von daher müsste es doch eigtl. Funktionieren
> oder?
Kommt drauf an. Vielleicht hast du ja einen DB-Wrapper in Verwendung der
alles säubert. Ansonsten: Ja.
Gregor
--
http://www.gregorkofler.at ::: Landschafts- und Reisefotografie
http://www.licht-blick.at ::: Forum für Multivisionsvorträge
http://www.image2d.com ::: Bildagentur für den alpinen Raum
Re: SQL Injection
am 29.08.2006 14:42:10 von Philipp Uffhaus
Am Tue, 29 Aug 2006 14:13:18 +0200 schrieb Gregor Kofler:
> Philipp Müller meinte:
>> Hallo,
>> ich habe davon gelesen das es diese gibt.
>
> Ja. Gibt es.
>
>> Nun habe ich viele Projekte auf meinem PC und wollte mal schauen wie es
>> funktioniert damit ich meine Seiten eben noch sichere machen kann.
>>
>> Ich habe es ausprobiert und so gemacht wie es auf vielen Seiten steht,
>> jedoch bin ich damit nicht zum Erfolg gekommen.
>> Also ich konnte nichts auslesen bzw. in meiner MySQL Datenbank ändern.
>
> Vielleicht sollte das auch ein "Profi" dieses Faches machen. Probieren
> braucht man eigentlich nicht - etwas Mitdenken bei den Erläuterungen
> reicht voll und ganz. Dass man auch seine eigenen Skripte durchblickt,
> setze ich voraus.
>
>> Es geht ja über die URL. Geht solch eine SQL Injection auch über Formulare
>> die mit einer MySQL Abfrage verbunden sind?
>
> Ja.
>
>> Habe ich was falsch gemacht, weil ich habe gegen solch einen Angriff meine
>> Seite noch nicht geschützt, von daher müsste es doch eigtl. Funktionieren
>> oder?
>
> Kommt drauf an. Vielleicht hast du ja einen DB-Wrapper in Verwendung der
> alles säubert. Ansonsten: Ja.
>
>
> Gregor
hi,
Naja ich nutze den einfachen Xampp Apache eben.
Hat der das schon mit drinne?
--
mfg Philipp
Re: SQL Injection
am 29.08.2006 15:08:06 von Gregor Kofler
Philipp Müller meinte:
[Angst vor SQL-Injections]
>>> Habe ich was falsch gemacht, weil ich habe gegen solch einen Angriff meine
>>> Seite noch nicht geschützt, von daher müsste es doch eigtl. Funktionieren
>>> oder?
>> Kommt drauf an. Vielleicht hast du ja einen DB-Wrapper in Verwendung der
>> alles säubert. Ansonsten: Ja.
> Naja ich nutze den einfachen Xampp Apache eben.
> Hat der das schon mit drinne?
Puh... In aller Kürze: Nein.
Gruß, Gregor
--
http://www.gregorkofler.at ::: Landschafts- und Reisefotografie
http://www.licht-blick.at ::: Forum für Multivisionsvorträge
http://www.image2d.com ::: Bildagentur für den alpinen Raum
Re: SQL Injection
am 29.08.2006 15:46:19 von Philipp Uffhaus
Am Tue, 29 Aug 2006 15:08:06 +0200 schrieb Gregor Kofler:
> Philipp Müller meinte:
>
> [Angst vor SQL-Injections]
>
>>>> Habe ich was falsch gemacht, weil ich habe gegen solch einen Angriff meine
>>>> Seite noch nicht geschützt, von daher müsste es doch eigtl. Funktionieren
>>>> oder?
>
>>> Kommt drauf an. Vielleicht hast du ja einen DB-Wrapper in Verwendung der
>>> alles säubert. Ansonsten: Ja.
>
>> Naja ich nutze den einfachen Xampp Apache eben.
>> Hat der das schon mit drinne?
>
> Puh... In aller Kürze: Nein.
>
> Gruß, Gregor
Mh dann weis ich nicht wieso es nicht geht bei mir eine SQL Injection :(
--
mfg Philipp
Re: SQL Injection
am 29.08.2006 15:59:48 von Frank Schenk
Philipp Müller wrote:
>=20
> Mh dann weis ich nicht wieso es nicht geht bei mir eine SQL Injection :=
(
>=20
Ist doch ganz einfach,
Du legst dir nen DynDNS zu, machst ne Port Weiterleitung im Router für =
Port 80, dann gibst uns den DynDNS Hostnamen und wer zuerst deine DB=20
plattmachen kann + 1 Tabelle anlegen mit 1 Spalte Name: Ich war hier, 1=20
Zeile: Email Adresse - der gewinnt nen Kasten Bier oder so.
:-D
gruß, Frank
Re: SQL Injection
am 29.08.2006 16:14:53 von Philipp Uffhaus
Am Tue, 29 Aug 2006 15:59:48 +0200 schrieb Frank Schenk:
> Philipp Müller wrote:
>>
>> Mh dann weis ich nicht wieso es nicht geht bei mir eine SQL Injection :(
>>
>
> Ist doch ganz einfach,
>
> Du legst dir nen DynDNS zu, machst ne Port Weiterleitung im Router für
> Port 80, dann gibst uns den DynDNS Hostnamen und wer zuerst deine DB
> plattmachen kann + 1 Tabelle anlegen mit 1 Spalte Name: Ich war hier, 1
> Zeile: Email Adresse - der gewinnt nen Kasten Bier oder so.
>
> :-D
>
>
> gruß, Frank
hehe witzig ^^
mh auf was muss man da besonders achten?
Ich habe das immer über die URL gemacht wie es bei Wikipedia steht ^^
Gibt es sonst noch eine Seite wo erklärt wird wie das geht?
--
mfg Philipp
Re: SQL Injection
am 29.08.2006 16:23:06 von Frank Schenk
Philipp Müller wrote:
> hehe witzig ^^
> mh auf was muss man da besonders achten?
> Ich habe das immer über die URL gemacht wie es bei Wikipedia steht ^^=
>=20
> Gibt es sonst noch eine Seite wo erklärt wird wie das geht?
Traue keiner Variable, die aus dem Web kommt. Prüfe alles. Verwende=20
immer mysql_real_escape_string().
Siehe FAQ zu SQL Injection
http://www.php-faq.de
(Den richtigen Link wirst finden oder?!)
gruß, Frank
Re: SQL Injection
am 29.08.2006 16:24:12 von Tobias Kutzler
Philipp Müller schrieb:
> Am Tue, 29 Aug 2006 15:59:48 +0200 schrieb Frank Schenk:
>
>> Philipp Müller wrote:
>>> Mh dann weis ich nicht wieso es nicht geht bei mir eine SQL Injection :(
>>>
>> Ist doch ganz einfach,
>>
>> Du legst dir nen DynDNS zu, machst ne Port Weiterleitung im Router für
>> Port 80, dann gibst uns den DynDNS Hostnamen und wer zuerst deine DB
>> plattmachen kann + 1 Tabelle anlegen mit 1 Spalte Name: Ich war hier, 1
>> Zeile: Email Adresse - der gewinnt nen Kasten Bier oder so.
>>
>> :-D
>>
>>
>> gruß, Frank
>
> hehe witzig ^^
> mh auf was muss man da besonders achten?
> Ich habe das immer über die URL gemacht wie es bei Wikipedia steht ^^
>
> Gibt es sonst noch eine Seite wo erklärt wird wie das geht?
Du kennst die PHP FAQ?
16.18. Wie kann ich bösartigen Code in SQL-Abfragen unterbinden?
http://www.php-faq.de/q/q-sql-injection.html
Ciao,
Tobias
Re: SQL Injection
am 29.08.2006 16:33:29 von Tobias Kutzler
Frank Schenk schrieb:
> Philipp Müller wrote:
>
>> hehe witzig ^^
>> mh auf was muss man da besonders achten?
>> Ich habe das immer über die URL gemacht wie es bei Wikipedia steht ^^
>>
>> Gibt es sonst noch eine Seite wo erklärt wird wie das geht?
>
> Traue keiner Variable, die aus dem Web kommt. Prüfe alles. Verwende
> immer mysql_real_escape_string().
>
> Siehe FAQ zu SQL Injection
> http://www.php-faq.de
> (Den richtigen Link wirst finden oder?!)
Na ich hoffe doch... Ich bin zu gutmütig und hätte ihn auch suchen
lassen sollen - siehe mein Posting ;-)
Ciao,
Tobias
Re: SQL Injection
am 29.08.2006 21:35:28 von Martin Thiel
Am Tue, 29 Aug 2006 16:33:29 +0200 schrieb Tobias Kutzler:
> Frank Schenk schrieb:
>> Philipp Müller wrote:
>>
>>> hehe witzig ^^
>>> mh auf was muss man da besonders achten?
>>> Ich habe das immer über die URL gemacht wie es bei Wikipedia steht ^^
>>>
>>> Gibt es sonst noch eine Seite wo erklärt wird wie das geht?
>>
>> Traue keiner Variable, die aus dem Web kommt. Prüfe alles. Verwende
>> immer mysql_real_escape_string().
>>
>> Siehe FAQ zu SQL Injection
>> http://www.php-faq.de
>> (Den richtigen Link wirst finden oder?!)
>
> Na ich hoffe doch... Ich bin zu gutmütig und hätte ihn auch suchen
> lassen sollen - siehe mein Posting ;-)
>
> Ciao,
> Tobias
Hallo an alle!
Ich habe mir gerade mal ein kleines Testskript geschrieben.
--- Ausschnitt aus dem Skript ---
$sql_string = "SELECT user_id, user_name, user_passwd FROM user WHERE
user_name = '".$_POST['name']."' AND user_passwd = '".$_POST['passwort']."'
";
--- CODE Ende ---
Wenn ich jezt in meinem Eingabe Formular admin'; -- eingebe, dann steht in
der Variable $sql_string folgendes:
SELECT user_id, user_name, user_passwd FROM user WHERE user_name =
'admin\'; --' AND user_passwd = ''
Frage: Wieso schreibt er mir vor das Hochkomma (') ein Backslash (\')?
Re: SQL Injection
am 29.08.2006 21:43:35 von Gregor Kofler
Martin Thiel meinte:
> Wenn ich jezt in meinem Eingabe Formular admin'; -- eingebe, dann steht in
> der Variable $sql_string folgendes:
>
> SELECT user_id, user_name, user_passwd FROM user WHERE user_name =
> 'admin\'; --' AND user_passwd = ''
>
>
> Frage: Wieso schreibt er mir vor das Hochkomma (') ein Backslash (\')?
Seufz.
Vielleicht wäre eine Abspaltung von d.c.l.faqvorlesung und
d.c.l.manualverweise eine Idee.
16.13. Wieso wird aus " plötzlich \" und wie geht das wieder weg?
http://www.php-faq.de/q/q-magic-quotes.html
Gregor
--
http://www.gregorkofler.at ::: Landschafts- und Reisefotografie
http://www.licht-blick.at ::: Forum für Multivisionsvorträge
http://www.image2d.com ::: Bildagentur für den alpinen Raum
Re: SQL Injection
am 29.08.2006 22:12:21 von Frank Schenk
Gregor Kofler schrieb:
> Seufz.
>
> Vielleicht wäre eine Abspaltung von d.c.l.faqvorlesung und
> d.c.l.manualverweise eine Idee.
Meine Unterstützung ist dir sicher. Aber wenn das dann nicht mal
dclpverweisauf_dclpf_und_dclpm wird ;)
gruß, Frank
Re: SQL Injection
am 29.08.2006 22:16:40 von Martin Thiel
Am Tue, 29 Aug 2006 21:43:35 +0200 schrieb Gregor Kofler:
> Martin Thiel meinte:
>
>> Wenn ich jezt in meinem Eingabe Formular admin'; -- eingebe, dann steht in
>> der Variable $sql_string folgendes:
>>
>> SELECT user_id, user_name, user_passwd FROM user WHERE user_name =
>> 'admin\'; --' AND user_passwd = ''
>>
>>
>> Frage: Wieso schreibt er mir vor das Hochkomma (') ein Backslash (\')?
>
> Seufz.
>
> Vielleicht wäre eine Abspaltung von d.c.l.faqvorlesung und
> d.c.l.manualverweise eine Idee.
>
> 16.13. Wieso wird aus " plötzlich \" und wie geht das wieder weg?
> http://www.php-faq.de/q/q-magic-quotes.html
>
> Gregor
Danke für deine schnelle Antwort.
Heißt das, dass ich vor SQL Injections vollkommen sicher bin, wenn ich die
Escapes in der php.ini aktiviere? Oder kann ein möglicher Angreifer trotz
dem \' Problems einen SQL-String in meinen Code einfügen? Wenn ja, wie?
Martin
Re: SQL Injection
am 29.08.2006 22:20:29 von Frank Schenk
Martin Thiel schrieb:
> Danke für deine schnelle Antwort.
>
> Heißt das, dass ich vor SQL Injections vollkommen sicher bin, wenn ich die
> Escapes in der php.ini aktiviere? Oder kann ein möglicher Angreifer trotz
> dem \' Problems einen SQL-String in meinen Code einfügen? Wenn ja, wie?
Hier ist nicht der Internet Vorlesedienst. Kauf dirn Buch oder lern googeln.
bye
Frank
Re: SQL Injection
am 29.08.2006 22:22:01 von Philipp Uffhaus
Am Tue, 29 Aug 2006 22:20:29 +0200 schrieb Frank Schenk:
> Martin Thiel schrieb:
>> Danke für deine schnelle Antwort.
>>
>> Heißt das, dass ich vor SQL Injections vollkommen sicher bin, wenn ich die
>> Escapes in der php.ini aktiviere? Oder kann ein möglicher Angreifer trotz
>> dem \' Problems einen SQL-String in meinen Code einfügen? Wenn ja, wie?
>
> Hier ist nicht der Internet Vorlesedienst. Kauf dirn Buch oder lern googeln.
>
>
> bye
>
> Frank
Abend,
naja alle sagen es wäre einfach umzusetzen, jedoch habe ich noch ein
Beispiel gesehen, welches dies auch beweist.
Habt ihr "zufällig" eines auf eurem PC liegen das ihr mal schicken bzw.
zeigen könntet wo es geht?
--
mfg Philipp
Re: SQL Injection
am 29.08.2006 22:48:35 von Matthias Esken
On Tue, 29 Aug 2006 22:16:40 +0200, Martin Thiel wrote:
> Heißt das, dass ich vor SQL Injections vollkommen sicher bin, wenn ich die
> Escapes in der php.ini aktiviere?
Kaputte Bremsen durch einen zweiten Airbag zu ersetzen ist keine gute Idee.
Gruß,
Matthias
Re: SQL Injection
am 29.08.2006 23:03:40 von Felix Holdener
Philipp Müller schrieb:
>naja alle sagen es wäre einfach umzusetzen, jedoch habe ich noch ein
>Beispiel gesehen, welches dies auch beweist.
>Habt ihr "zufällig" eines auf eurem PC liegen das ihr mal schicken bzw.
>zeigen könntet wo es geht?
Du sollst nicht das Injection ausprobieren sondern die Anweisungen auf
http://www.php-faq.de/q/q-sql-injection.html zur Vermeidung solcher
beherzigen. Wenn du die Anweisungen dort verstanden hast erübrigt sich
dein doch etwas doofes Nachfragen hier.
Ich bin kein PHP-Krack und habe es auch kapiert. Und ich nehme die
Tipps und Hinweise der Profis hier ernst, ohne dumm nachzufragen oder
ihnen zu unterstellen, sie würden Quatsch verbreiten.
Deine Mailadresse deutet doch nicht etwa darauf hin, dass du ein Troll
bist?
Felix
Re: SQL Injection
am 30.08.2006 10:48:44 von Ulf Kadner
Philipp Müller wrote:
> Am Tue, schrieb Frank Schenk:
>>Hier ist nicht der Internet Vorlesedienst. Kauf dirn Buch oder lern googeln.
>
> naja alle sagen es wäre einfach umzusetzen, jedoch habe ich noch ein
> Beispiel gesehen, welches dies auch beweist.
OK. Hier ein Beispiel!
Nimm 50Euro ruf die Auskunft an wo der nächste Buchhandel ist, geht
dahin und frag ob Du für das eine Papier ein paar andere bekommst.
Und wenn Du nicht weist von was ich rede lern zitieren.
> Habt ihr "zufällig" eines auf eurem PC liegen das ihr mal schicken bzw.
> zeigen könntet wo es geht?
Och das geht überall wo auch der PC geht. Man kann aber auch welche aus
echtem Paper bekommen. *staun*
MfG, Ulf