DROP TABLE!

Tags:    php

Ville man kunne slette den tabel - Hvordan? (hacking):

$tjek_id = mysql_query("SELECT * FROM baggrunde WHERE id LIKE '$_GET[id]'");
if(mysql_num_rows($tjek_id) == "0") {
echo("Der findes ingen baggrund med dette id!");

I denne kode benyttes $_GET[] fra en url.
Jeg mener det er noget med DROP TABLE baggrunde i en evt. url? Vil gerne have forklaring :-)

Tak på forhånd :-)



7 svar postet i denne tråd vises herunder
3 indlæg har modtaget i alt 6 karma
Sorter efter stemmer Sorter efter dato
En søgning på google giver det her:
x'; DROP TABLE members; --



det heddder "SQL injection".

Eksempel med ovenstående sql:
mysql_query("SELECT * FROM baggrunde WHERE id LIKE '$_GET[id]'");

I urlen skrives der f.eks:
"www...blabla.../?id=';DROP TABLES baggrunde; #"

SQL vil da se således ud:
mysql_query("SELECT * FROM baggrunde WHERE id LIKE '';DROP TABLES baggrunde; #'");

Havelågen til slut indikerer at alt efter dette tegn kun er kommentarer.

Men dette er såfremt at magic_qoutes er slået fra og der ikke foretages sikkerhedstjek på brugerinput. Mener dog engang at have stødt på en måde at omgå magic_qoutes. Men jo mere filtrering på brugerinput jo bedre.

NEVER TRUST YOUR USER! :)



Indlæg senest redigeret d. 25.10.2007 00:59 af Bruger #10216
Koden Gnu skriver, tror jeg ikke virker. Da mysql_query af sikkerhedsmæssige årsager kun kan eksekvere 1 query.



Så skal du lige slå magic_quotes_gpc fra. Ellers bliver inputtet escapet, og koden vil ikke blive eksekveret.



jamen mathias?
hvordan skal man skrive det?
hvor? i linket???



Prøv at skrive det i linket ja:)



Vil eller vil ikke virke...

Så antag at der står mysqli_multi_query() i stedet for mysql_query()... hehe... :)



t