Hallo Allemaal,

Ik lees hele pagina's vol over SQL injections... Nu komt het.

Ik heb op localhost ff snel een form gemaakt met 1 veld, en deze input word gebruikt in een where clausule....

ik heb het volgende uitstaan in php.ini.
magic_quotes_gpc
magic_quotes_runtime

Dit zou naar mijn weten moeten voorkomen dat er backslashes worden geplaatst voor mijn quotes....

Dit trucje werkt in het input field....
x' OR 1=1#

en deze ook:
x' OR 'c' = 'c

Maar deze (Wat volgens het hele internet beweerd word dat zou moeten werken.....) werkt niet:
x' OR 'c' = 'c; DROP TABLE test; --

Bij bovenstaand krijg ik de welbekende error:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'DROP TABLE test; --'' at line 1

Er worden absoluut geen slashes toegevoegd waar dan ook.....

Ik heb MySQL 5.1

Nu word ik toch heel nieuwschierig waarom dit niet werkt....

Iemand een duidelijk uitleg... Ik heb ALLE tuts gelezen.....

Cheers
[php]mysql_real_escape_string[/php]

Magic quotes uit.
Addslashes niet gebruiken.
Klaar.
Hall Karl,

Zoals al reeds gemeld... Magic quotes staan uit. En addslashes gebruik ik ook niet. Anders zou x' OR 'c' = 'c ook niet werken...

Iemand ?

Ik ben hier nieuwschierig naar namelijk
Karl Karl op 18/11/2010 21:16:42

[php]mysql_real_escape_string[/php]


Je bent er nog niet met testen, je denkt er te simpel over:
x' OR 'c' = 'c; DROP TABLE test; string goed afsluiten met een " ??
Karl,

Wat ik wil, is juist dat ik wel een sql injectie kan uitvoeren, niet voorkomen.

Maar somehow, it wont work :(
Oh, zo zit het.

Mysql_query kan geen meerdere queries aan, wat je nu wel doet.
Aad B op 18/11/2010 21:24:03

Je bent er nog niet met testen, je denkt er te simpel over:
x' OR 'c' = 'c; DROP TABLE test; string goed afsluiten met een " ??



Best Aad,

Zou jij mij eens kunnen vertellen wat ik precies in het input field moet typen zodat de table test verwijderd word ? Ik heb -- toegevoegd om de laatste quote te omzeilen... Maar toch, het werkt niet :(

[size=xsmall]Toevoeging op 18/11/2010 21:32:04:[/size]

Karl Karl op 18/11/2010 21:26:44

Oh, zo zit het.

Mysql_query kan geen meerdere queries aan, wat je nu wel doet.


Aha! Duidelijk.... Kun je mij vertellen waarom dit soort voorbeelden dan gegeven worden op het net ? En op welke db dit is gebaseerd ? Of kan het wel, maar niet met mysql_query ?
Ik dacht dat het ter verkoming van sql injections was, omdat je het dus had over die magic quotes en addslashes, en ook nog eens ging testen :-).
Maar goed, mysql_query kan dus niet meerdere queries tegelijk aan, wat je nu wel doet:
SELECT blaat FROM blup WHERE hanzeflans=zus; DROP TABLE blup;
dat zijn twee queries :-)
x' OR 'c' = 'c'; DROP TABLE test; '
Karl,

Leuke communicatie zo :) Wil je nog ff amtwoorden op (als je het nog niet hebt gedaan) :
Aha! Duidelijk.... Kun je mij vertellen waarom dit soort voorbeelden dan gegeven worden op het net ? En op welke db dit is gebaseerd ? Of kan het wel, maar niet met mysql_query ?

DANK JE WEL MAN! you made my day! Ik dacht al dat ik gek aan het worden was

Reageren