Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: MySQL Injektio

tesmu [18.06.2011 04:30:35]

#

Heips

Testailen tässä verkkokauppasovellustani mysql-injektion varalta. Olen tehnyt yhden kohdan sinne tarkoituksella hieman huolimattomasti, laitoin debuggitulosteet querystä jonka PHP-koodini saa ja sitten myslin antamasta errorista.

Got Query: SELECT * FROM netshop WHERE maingroup = '1' AND subgroup = '9'; DROP TABLE `lolled`; SELECT * FROM netshop WHERE 't' = 't'

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 `lolled`; SELECT * FROM netshop WHERE 't' = 't'' at line 1

PHPKoodista ote

<?php
  $qr = "SELECT * FROM netshop WHERE maingroup = '{$main}' AND subgroup = '{$sub}'";

  $ret = mysql_query($qr);
  echo "Got Query: " .$qr ."<br><br>";
  die(mysql_error());
?>

Main ja sub saadaan ihan seuraavasti Getillä

<?php
  $main = $_GET['maingroup'];
  $sub = $_GET['subgroup'];
?>

Minkätakia mysli antaa kyseisen virheen vaikka query on kuitenkin validi?

koitin ajaa suoraan kantaan kyseisen queryn ja toimi loistavasti.

Kyseinen dropattava lolled taulu löytyy taas kannasta.

Edit: Urliin syötän tiedot näin http://osoite.com/netshop/index.php?maingroup=1&subgroup=9'; DROP TABLE `lolled`; SELECT * FROM netshop WHERE 't' = 't

Edit2: Sinänsä tämähän ei haittaa vaikka ei toimikkaan, mutta ihan nyt mielenkiinnosta mietin että miksi ilmoittaa virheestä.

Lahha [18.06.2011 07:04:59]

#

Käsittääkseni mysql_query():lle ei voi antaa kuin yhden queryn kerrallaan.

tesmu [18.06.2011 07:18:54]

#

Näinhän tuo näyttäisi olevan, kas kun en itse tajunnutkaan.

Jokotai [18.06.2011 10:08:29]

#

Pelkästään SQL-injektio nimellä kulkee.

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta