JeuWeb - Crée ton jeu par navigateur
Problème de piratage - Version imprimable

+- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org)
+-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38)
+--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51)
+--- Sujet : Problème de piratage (/showthread.php?tid=3631)

Pages : 1 2 3


Problème de piratage - phenix - 02-02-2009

Bonjour à tous,

Voila, un petit malin s'amuse depuis quelques temps avec mon site, visiblement il arrive à modifier des informations dans la base de donnée.
Je suis presque sur à 100% que toutes les données POST son traité avec mysql_real_escape_string. Dès lors, je ne sais absolument pas comment il s'y prend.

Si quelqu'un a une idée, je suis preneur...


RE: Problème de piratage - Kassak - 02-02-2009

Ça fait penser à des attaques par injection ça Wink

Il y avait un post (de moi), sur le sujet, et sur les divers moyens que chacun a pour s'en protéger. Je ne le retrouve plus par contre ;-)

Sinon, vérifie bien chaque données en post, si le type arrive à rentrer dans la BDD, c'est qu'il y a une faille, donc vérifie bien si chaque données en POST contient bien ce que tu veux qu'elle contienne (chaine de caractère, si tu sais laquelle encore mieux), chaine numérique etc....


RE: Problème de piratage - Sephi-Chan - 02-02-2009

Difficile de te dire quoi faire en l'état.
As-tu déterminé quelles tables il arrivait à modifier ? En as-tu conclu les pages qui permettaient d'y accéder ?
Peut-être qu'il arrive simplement à détourner des choses vers lui, sans injections ou autres (auquel cas tu as aussi une faille, mais d'un autre ordre).


Sephi-Chan


RE: Problème de piratage - phenix - 02-02-2009

Citation :Sinon, vérifie bien chaque données en post, si le type arrive à rentrer dans la BDD, c'est qu'il y a une faille, donc vérifie bien si chaque données en POST contient bien ce que tu veux qu'elle contienne (chaine de caractère, si tu sais laquelle encore mieux), chaine numérique etc....

J'ai déjà revérifier, je vais encore le faire...

Par contre, je pensais faire un mysql_real_escape via un foreach pour être sur que toutes les variable soit protégé, mais est-ce bien utiles ?

Citation :As-tu déterminé quelles tables il arrivait à modifier ? En as-tu conclu les pages qui permettaient d'y accéder ?

Il ne semble pas avoir de limite, vu que la base de donnée du forum a aussi été modifié.

Citation :Peut-être qu'il arrive simplement à détourner des choses vers lui, sans injections ou autres (auquel cas tu as aussi une faille, mais d'un autre ordre).

Non, les dernier événement montre qu'il modifie la base de donnée.


RE: Problème de piratage - Kassak - 02-02-2009

Va voir mon post dans la partie ressource, et installe le module, voir si ça marche^^


RE: Problème de piratage - phenix - 02-02-2009

J'ai installer le module, j'ai fais tester la page d'inscription:

Failures:
19
Warnings:
0
Passes:
175421

Je sais pas comment interprété les résultats, passes c'est bon ou pas ?

Citation :Log TOUTES tes requêtes Sql tu vas vite trouver 2

C'est pas con sa, dommage que j'ai pas de truc pour faire sa, j'ai toujours utilisé direct mysql_query.


RE: Problème de piratage - phenix - 02-02-2009

Est-ce quelqu'un sais si on peu imbriqué un update dans un select ?

genre: SELECT * FROM table WHERE bazar=1 (UPDATE ...)

Parce que si c'est sa, j'ai trouvé ^^


RE: Problème de piratage - Sephi-Chan - 02-02-2009

Non, on ne peut pas. Par contre on peut faire un SELECT dans un UPDATE.


Sephi-Chan


RE: Problème de piratage - phenix - 02-02-2009

Bon je vais aller me pendre ok ?

J'ai trouvé sa:

Code PHP :
<?php 
$dejamail
= mysql_query('SELECT id FROM users WHERE mail=\''.$_POST['remail'].'\'') or die(mysql_error());

Sa fait très peur comme truc, mais est-ce que cela explique qu'il ai eu la possibilité de faire des updates...


RE: Problème de piratage - Sephi-Chan - 02-02-2009

À tout hasard, est-ce que tes magic quotes sont activés ? Si oui, ça explique peut-être la vulnérabilité de ton application puisqu'elles interfèrent avec mysql_real_escape_string().

Ce code — au même effet — est moins vulnérable (dans le cas où les magic_quotes sont désactivés) :
$dejamail = mysql_query(sprintf(
"SELECT id FROM users WHERE mail = '%s';",
mysql_real_escape_string($_POST['remail'])
));
Mais à priori, je ne pense pas que la faille vienne de là.


Sephi-Chan