MySql injection möglich?
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
abfragen
abnehmen
befehl
beispiel
code
datum
folgendes probieren
genannte funktion
informieren
job
not
quellcode
relevante zeichen
set
spalte
string
teil
test
update
url
-
hey leute..
hab ein script auf meinem server laufen, url sieht so aus:
blabla.php?a=job&char=4957
wenn ich da ein ' an die 4957 dranhänge, kommt folgender fehler:
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in blabla.php on line 189
bei möglichn sql injectionen soltle ja so ne "fetch_array" blabla kommen, is mein script sicher? -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Hmm schwer zu sagen ohne Quellcode Da ich kein Drop Database anhängen möchte
aber kannst ja mal folgendes probieren:
blabla.php?a=job&char=4957';Update table set spalte='test' where id=1;
table und spalte natürlich an eine vorhandene table anpassen
Grüßle
Beitrag zuletzt geändert: 5.5.2009 12:47:53 von scout -
hi,
sieht für mich schon ein wenig kritisch aus:
denn 'not a valid mysql-ressource' bedeutet ja, dass der query nicht ordnungsgemäss ausgeführt werden konnte - und das könnte dann in deinem fall daran liegen, dass per ' ein String im query an einer ungewöhnlichen stelle eingeleitet wird. Und das wiederum heisst, die ' (und eben evtl auch andere mysql-relevante zeichen) kommen unmaskiert in deinen query.
Aber am einfachsten wäre es für alle, wenn du einfach den quellcode herzeigst?!
scout schrieb:
aber kannst ja mal folgendes probieren:
blabla.php?a=job&char=4957';Update table set spalte='test' where id=1;
@scout:
sendet mysql_query() aus php nicht immer nur den ersten query eines strings oder vertue ich mich da jetzt? -
$id = $_GET["char"]; $resultado = mysql_query("select * from characters AS c INNER JOIN accounts AS a ON a.username = c.accountname WHERE c.id = $id AND a.username = '$user'"); $qde_registros = mysql_num_rows($resultado); if ($qde_registros != 0) { $cQuery = mysql_query("select * from characters where id = $id"); $char = mysql_fetch_assoc($cQuery);
hier ein teil des quellcodes^^
Beitrag zuletzt geändert: 4.5.2009 21:50:04 von strugglez -
strugglez schrieb:
[...]
hier ein teil des quellcodes^^
o_^ okay, in dem fall gilt das, was nikic schrieb (s.o.):
Von selbst schützt sich bei der direkten Verwendung der PHP-mysql-befehle da kaum was - also: entweder ein bisschen über die oben genannte funktion und den Umgang mit dieser informieren oder - falls möglich - auf erweiterungen wie mysqli zurückgreifen, die dir das abnehmen können.... -
also die können da injectn?
soweit ich weiß geht bei dem mysql_query nur ein sql befehl, was können die da groß machn?
hab da noch absolut kein plan von -
Die könnten den Query abschließen, und einen neuen anhänge:
$user= " '");DROP DATABASE mydatabase"
Lies dir mal das durch:
http://www.php.net/manual/de/function.mysql-real-escape-string.php
mfg,
Prog -
aldistammkunde schrieb:
scout schrieb:
aber kannst ja mal folgendes probieren:
blabla.php?a=job&char=4957';Update table set spalte='test' where id=1;
@scout:
sendet mysql_query() aus php nicht immer nur den ersten query eines strings oder vertue ich mich da jetzt?
Nein, dem ist nicht so.
MySQL sendet immer alle Abfragen, allerdings in einer Transaktion
Wenn es zwei Selects sind kommt natürlich Brühe raus und MySQL muß sich für ein Select entscheiden (weiß jetzt nicht welches)
Grüßle -
Man sollte immer alle eingaben Filtern!
egal ob Mysql oder nicht mysql.
Wichtig bei Zahlen: per $_GET und auch $_POST
intval($_GET//$_POST-Variable...)
sprich beispiel:
info.php?id=203
in der PHP:
$get_id=intval($_GET["id"]);
und außgaben sollten immer wegen XSS usw. noch bearbeitet werden (htmlspecialchars).
Genauso wie man keine Datein direkt über den Querystring (GET/POST) includen soll Beispiel: index.php?include=./include/mysql.php
das könnte man ggf. für externe scripte nutzen.
MySql Injections sind zu vermeinden mit addslash oder besser mit mysql_real_escape_string oder für mysqli das selbe mit i ;D -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage