SQL Injection will nicht.Warum?

Hi,
ich wollt mich mal mehr mit SQL Injections auseinandersetzen und hab folgendes Script geschrieben und bei funpic raufgeladen:

Code:
<html>
<body>

<?php
   mysql_connect("localhost","blablabla","********");
   mysql_select_db("datenbank_01");

 
 /* SQL-Abfrage ausführen */
   $res = mysql_query("select * from personen WHERE name='$name_in'");

   /* Anzahl Datensätze ermitteln und ausgeben */
   $num = mysql_num_rows($res);
   echo "$num Datensätze gefunden<br>";

   /* Datensätze aus Ergebnis ermitteln, */
   /* in Array speichern und ausgeben    */
     while ($dsatz = mysql_fetch_assoc($res))
   {
      echo $dsatz["id"] . ", "
         . $dsatz["name"] . ", "
         . $dsatz["gehalt"] . ", "
         . $dsatz["typ"] . "<br>";
   }
?>

</body>
</html>

Ok,wenn ich jetzt einen Namen in name_in übergebe dann funzt das auch..
Aber wenn ich
Code:
x' OR '1'='1
übergebe sollten doch eigentlich ALLE Beiträge kommen,aber nix :(
Code:
0 Datensätze gefunden

Was mach ich falsch?

Danke im voraus,
Xalon
 
bei mir funzt der code so (mit geringfügigen abänderungen wegen meiner DB-struktur)...

ändere mal die zehnte zeile so um:
Code:
$res = mysql_query("select * from personen WHERE name='$name_in'") OR die(mysql_error());
und sag uns, ob und welche fehler er ausspuckt.

cYa
 
ich würde mal darauf tippen, dass gar kein sql injection möglich ist, weil magic_quotes_gpc aktiviert ist.
lässt dir mal mit phpinfo() die config ausgeben, dann kannst du das überprüfen.
 
naja, er kann sich das ja aber simulieren; damit meine ich, dass er $name_in in der datei selbst definiert.
z.b. mit dem wert ' OR '1'='1...
dann kann man sich ja vorstellen, dass man das per formular getan hat ;)

cYa
 
Original von ivegotmail
Original von crystal
aber wenn er den wert der variable $name_in garnicht mit GET oder POST übermittelt, dann hat magic_quotes_gpc ja garkeinen effekt ;)
na ich geh mal davon aus, dass er $name_in über GET/POST übermittelt wie es bei sql injection üblich ist.

Original von crystal
phpinfo() bei funpic: http://send0r.se.funpic.de/x.php
magic_quotes_gpc = On
d.h. kein sql injection möglich.

Ok,danke euch,das sagt alles :'(
Was bewirkt dieses magic_quote (oder so :D ) eigentlich noch?

Xalon
 
es gibt im prinzip 3 möglichkeiten dies einzustellen:
siehe http://www.php-faq.de/q/q-magic-quotes.html

1. globale konfiguration in der php.ini (da kommst du aber bei funpic nicht ran, sondern nur die server admins)
2. lokale konfiguration (für bestimmte ordner) über .htaccess oder httpd.conf: php_value magic_quotes_gpc "0"
3. konfiguration direkt im php script über die funktion ini_set(): ini_set("magic_quotes_gpc",0);
funktioniert aber nicht weil ini_set() bei funpic aus sicherheitsgründen unter disable_functions gelistet ist.

also könntest du mal 2. ausprobieren. erstell in dem ordner wo das script liegt die datei ".htaccess" mit dem inhalt: php_value magic_quotes_gpc "0"
vielleicht klappt das ... was ich aber bezweifle.

lad dir am besten den ganz einfach zu nutzenden webserver xampp runter und stell in der datei xampp/apache/bin/php.ini magic_quotes_gpc auf Off. dann kannst du sql injection bei dir lokal auf m rechner testen.
http://www.apachefriends.org/de/xampp.html
 
Na wie du meinst xD
Also kann ich trotz diesen addslashes bei " und co. SQL Injection machen auch wenn ich es NICHT abstellen kann?

Xalon
 
er meint, wenn auf einer website, die er sql-injecten will, addslashes aktiviert sind, wie er das dann umgehen kann und trotzdem eine funzende sql-injection hinbekommt...

cYa
 
Zurück
Oben