SQL injections

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Laurens ten Ham

Laurens ten Ham

18/11/2010 21:14:05
Quote Anchor link
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
Gewijzigd op 18/11/2010 21:14:53 door Laurens ten Ham
 
PHP hulp

PHP hulp

18/07/2024 01:30:40
 

18/11/2010 21:16:42
Quote Anchor link
mysql_real_escape_string

Magic quotes uit.
Addslashes niet gebruiken.
Klaar.
 
Laurens ten Ham

Laurens ten Ham

18/11/2010 21:21:42
Quote Anchor link
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
Gewijzigd op 18/11/2010 21:22:46 door Laurens ten Ham
 

18/11/2010 21:22:42
Quote Anchor link
Karl Karl op 18/11/2010 21:16:42:
 
Aad B

Aad B

18/11/2010 21:24:03
Quote Anchor link
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 " ??
 
Laurens ten Ham

Laurens ten Ham

18/11/2010 21:24:26
Quote Anchor link
Karl,

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

Maar somehow, it wont work :(
 

18/11/2010 21:26:44
Quote Anchor link
Oh, zo zit het.

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

Laurens ten Ham

18/11/2010 21:27:01
Quote Anchor link
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 :(

Toevoeging op 18/11/2010 21:32:04:

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 ?
 

18/11/2010 21:32:06
Quote Anchor link
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 :-)
 
- SanThe -

- SanThe -

18/11/2010 21:33:24
Quote Anchor link
x' OR 'c' = 'c'; DROP TABLE test; '
 
Laurens ten Ham

Laurens ten Ham

18/11/2010 21:33:34
Quote Anchor link
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
 
Dbr Br

Dbr Br

18/11/2010 21:34:36
Quote Anchor link
Kun je mij vertellen waarom dit soort voorbeelden dan gegeven worden op het net ?

Gebruikt iedereen mysql_query()? Daar zal het antwoord zich wel bevinden. Verder is het een voorbeeld dat gemakkelijk begrijpbaar is en de noodzaak duidelijk maakt om sql-injection te voorkomen.
 
Laurens ten Ham

Laurens ten Ham

18/11/2010 21:35:31
Quote Anchor link
- SanThe - op 18/11/2010 21:33:24:
x' OR 'c' = 'c'; DROP TABLE test; '


Tried that :( Doesnt work. mysql_query kan dit gewoon niet ?


Toevoeging op 18/11/2010 21:36:47:

Ik vind het geweldig dat iedereen zo behulpzaam is! Echt! Maar er gaan nu dingen door elkaar lopen..

Wat ik wil, kan dat met mysql_query() ? Ja/Nee waarom?
 

18/11/2010 21:36:52
Quote Anchor link
We zijn beide te snel :-).

Voor zover ik weet kan het niet met mysql_* functies. Op welke sql engines / scripttalen het mogelijk is weet ik eigenlijk niet zo. Misschien met SQL server van Microsoft.
Of als er op een andere manier de db benaderd wordt. Als je gewoon een mysql console hebt kan je wel weer meerdere queries te gelijk gebruiken.
Ook moet je dus oppassen met mysqli.multi-query.
Het liefste haal je met sql injections data op (met uitjes).
 
Laurens ten Ham

Laurens ten Ham

18/11/2010 21:44:18
Quote Anchor link
Idd! shell command werkt prima mysql> query1 ; query 2;
Hetzelfde in PHPmyAdmin, werkt ook prima. Zolang ik dus bij mysql_query blijf, is het ok... Heel duidelijk allemaal! Dank jullie wel!
 

18/11/2010 21:46:02
Quote Anchor link
Wel beveiligen!
Overigs is het zo (geloof ik) dat phpmyadmin je query helemaal ontleed... (En een limit toevoegt)
Gewijzigd op 18/11/2010 21:47:17 door
 
Laurens ten Ham

Laurens ten Ham

18/11/2010 21:51:08
Quote Anchor link
Sowieso gebruik ik standaard addslashes of mysql_real_escape_string. Ik wou dit gewoon eens goed onderzoeken. En dat heb ik dan ook gedaan :) Dank!
 

18/11/2010 21:53:44
Quote Anchor link
Geen addslashes gebruiken. Dat is geen beveiliging, dat is verneuken van data.
Gewoon mysql_real_escape_string, of prepared statements, of typcaste naar int / floot w/e
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.