Précédent   Forum des professionnels en informatique > Bases de données > MySQL
MySQL Forum d'entraide MySQL. Avant de poster -> FAQ MySQL, Tutoriels MySQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 05/11/2011, 09h17   #1
Invité régulier
 
Inscription : janvier 2006
Messages : 49
Détails du profil
Informations forums :
Inscription : janvier 2006
Messages : 49
Points : 9
Points : 9
Par défaut Un trou de sécurité ?

Bonjour,

j'ai un site web et ce matin je reçois ce mail d'un inconnu :
"
bonjour
votre site XXXXXX.com n'a pas sécurisé parce que il CONTENIR d un trou dangereux
les hacker pouvons Connecté a votre data base
je suis prét t'aidé de réparé tous trous
je suis besion de l argent 260 £ pour acheter les medicament pour mon marie

"

Ensuite, le mec me liste toutes mes bases de données et certaines tables !!!!

Ca fait peur, je dois avoir un gros trou de sécurité, mais lequel ?

Merci de m'aider je flippe ...

++
fraginfo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/11/2011, 09h28   #2
Modérateur
 
Avatar de CinePhil
 
Homme Philippe Leménager
Ingénieur d'études en informatique
Inscription : août 2006
Messages : 11 029
Détails du profil
Informations personnelles :
Nom : Homme Philippe Leménager
Âge : 48
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur d'études en informatique
Secteur : Enseignement

Informations forums :
Inscription : août 2006
Messages : 11 029
Points : 18 328
Points : 18 328
Envoyer un message via MSN à CinePhil
S'il peut te lister toutes tes BDD et tables, c'est qu'il a pu accéder à l'information donc oui, tu as un trou de sécurité !

Peut-être a t-il utilisé une injection SQL via une URL de ton site ?
Peut-être as-tu laissé traîner en clair le compte utilisateur MySQL et le mot de passe dans une URL ou dans un code qui génère la page HTML ou un fichier Javascript envoyé au browser ?
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique.
Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework...
« Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française !
Linuxiens, comptez-vous !
CinePhil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/11/2011, 09h53   #3
Invité régulier
 
Inscription : janvier 2006
Messages : 49
Détails du profil
Informations forums :
Inscription : janvier 2006
Messages : 49
Points : 9
Points : 9
Citation:
Envoyé par CinePhil Voir le message
S'il peut te lister toutes tes BDD et tables, c'est qu'il a pu accéder à l'information donc oui, tu as un trou de sécurité !

Peut-être a t-il utilisé une injection SQL via une URL de ton site ?
Peut-être as-tu laissé traîner en clair le compte utilisateur MySQL et le mot de passe dans une URL ou dans un code qui génère la page HTML ou un fichier Javascript envoyé au browser ?
le user et mot de passe est jamais passé dans l url, il est que dans mes fichiers php ...

Je viens de limiter l accès à localhost ce serait peut être déjà mieux mais ça résoud pas le souci
fraginfo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/11/2011, 11h33   #4
Modérateur
 
Avatar de sevyc64
 
Homme Yves
Développeur informatique
Inscription : janvier 2007
Messages : 3 880
Détails du profil
Informations personnelles :
Nom : Homme Yves
Âge : 39
Localisation : France, Pyrénées Atlantiques (Aquitaine)

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : janvier 2007
Messages : 3 880
Points : 7 656
Points : 7 656
Attention, ce message, tel que tu le rapporte, est une grosse tentative d'arnaque.

Il n'est même pas certains que l'auteur ait réussi à acceder à la structure de ton site. Il a peut-être simplement réussi à injecter un script qui a lu la structure et créer le mail, sans que lui même ait eu l'information.

Si ça se trouve, le message a été envoyé depuis l'adresse d'administration du serveur lui-même, vers cette même adresse, que tu as redirigé peut-être sur une adresse personnelle.

En tout cas, ne communique pas avec cette personne, ne lui adresse aucune somme d'argent, ni aucun paramètre, compte d'accès, ou autre de ton site.
__________________
Sevyc64 --- Le partage est notre force

NON AU LANGAGE SMS & FAUTES VOLONTAIRES SUR LES FORUMS
sevyc64 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/11/2011, 13h05   #5
Invité régulier
 
Inscription : janvier 2006
Messages : 49
Détails du profil
Informations forums :
Inscription : janvier 2006
Messages : 49
Points : 9
Points : 9
Citation:
Envoyé par sevyc64 Voir le message
Attention, ce message, tel que tu le rapporte, est une grosse tentative d'arnaque.

Il n'est même pas certains que l'auteur ait réussi à acceder à la structure de ton site. Il a peut-être simplement réussi à injecter un script qui a lu la structure et créer le mail, sans que lui même ait eu l'information.

Si ça se trouve, le message a été envoyé depuis l'adresse d'administration du serveur lui-même, vers cette même adresse, que tu as redirigé peut-être sur une adresse personnelle.

En tout cas, ne communique pas avec cette personne, ne lui adresse aucune somme d'argent, ni aucun paramètre, compte d'accès, ou autre de ton site.
Arnaque oui, mais il a quand même listé toutes mes bases ! Comment ????? C'est ça qui m'inquiète ...
fraginfo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/11/2011, 12h24   #6
Rédacteur/Modérateur

 
Avatar de SQLpro
 
Homme Frédéric BROUARD
Expert SGBDR & SQL
Inscription : mai 2002
Messages : 10 959
Détails du profil
Informations personnelles :
Nom : Homme Frédéric BROUARD
Localisation : France

Informations professionnelles :
Activité : Expert SGBDR & SQL
Secteur : Conseil

Informations forums :
Inscription : mai 2002
Messages : 10 959
Points : 17 791
Points : 17 791
En règles général les développeurs PHP/MySQL ne sont pas formé à faire des applications sécurisées.
Parmi les trous de sécurité les plus classiques il y a la création de requêtes par manipulation de bout de chaines de caractères dans PHP, Sans vérification des du contenu des variables passées en argument...
Cela constitue des injections de SQL.
Dès lors, au lieu de passer une valeur classique, l'utilisateur var passer un texte comme :
"toto';SELECT * FROM INFORMATION_SCHEMA.TABLES--"
Et donc obtenir la liste de vos tables...

Il suffit donc d'identifier les points d'injection de SQL et d'y remédier soit en faisant des requêtes paramétrées, soit en utilisant des procédures stockées, soit en testant le contenu des variables saisie et le tout en ajoutant une véritable gestion de la sécurité via les utilisateurs SQL et les privilèges...

Cela vous coutera certainement plus que les 250 £ demandées par cet escroc, mais il fallait y penser avant !

A +

PS : je suis toujours atterré par la méconnaissance des concepts des SGBDR par les développeurs MySQL !
__________________
Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
Site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
Blog SQL, SQL Server, modélisation données : http://blog.developpez.com/sqlpro
http://www.sqlspot.com : modélisation, conseils, audit, optimisation, formation
* * * * * Enseignant CNAM PACA - ISEN Toulon - CESI Aix en Provence * * * * *
SQLpro est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 06/11/2011, 13h31   #7
Invité régulier
 
Inscription : janvier 2006
Messages : 49
Détails du profil
Informations forums :
Inscription : janvier 2006
Messages : 49
Points : 9
Points : 9
Citation:
Envoyé par SQLpro Voir le message
PS : je suis toujours atterré par la méconnaissance des concepts des SGBDR par les développeurs MySQL !
Tout le monde n'est pas, je cite, "Expert SGBDR & SQL" ...
fraginfo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/11/2011, 14h10   #8
dsy
Membre habitué
 
Inscription : septembre 2002
Messages : 75
Détails du profil
Informations forums :
Inscription : septembre 2002
Messages : 75
Points : 100
Points : 100
"Ca fait peur, je dois avoir un gros trou de sécurité, mais lequel ?"
Tu pourrais commencer par regarder tes logs HTTP pour analyser les requêtes réussies.
dsy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/11/2011, 14h39   #9
Invité régulier
 
Inscription : janvier 2006
Messages : 49
Détails du profil
Informations forums :
Inscription : janvier 2006
Messages : 49
Points : 9
Points : 9
ça y est j'ai trouvé de droles de traces :

Citation:
41.250.95.160 - - [03/Nov/2011:15:30:19 +0100] "GET /produit/index/?pid=-999.9%20UNION%20ALL%20SELECT%200x31303235343830303536,0x31303235343830303536,0x31303235343830303536,0x31303235343830303536,0x31303235343830303536,0x31303235343830303536-- HTTP/1.1" 200 88733 "-" "-"

41.250.95.160 - - [03/Nov/2011:15:30:26 +0100] "GET /produit/index/?pid=-999.9%20UNION%20ALL%20SELECT%200x31303235343830303536,0x31303235343830303536,0x31303235343830303536,0x31303235343830303536,0x31303235343830303536,0x31303235343830303536,0x31303235343830303536,0x31303235343830303536,0x31303235343830303536,0x31303235343830303536,0x31303235343830303536,0x31303235343830303536-- HTTP/1.1" 200 88733 "-" "-"
Ca fait quoi ce truc ?????
fraginfo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/11/2011, 14h45   #10
Invité régulier
 
Inscription : janvier 2006
Messages : 49
Détails du profil
Informations forums :
Inscription : janvier 2006
Messages : 49
Points : 9
Points : 9
Citation:
/produit/index/?pid=65561%20and(select%201%20from(select%20count(*),concat((select%20(select%20concat(0x7e,0x27,Hex(cast(database()%20as%20char)),0x27,0x7e))%20from%20information_schema.tables%20limit%200,1),floor(rand(0)*2))x%20from%20information_schema.tables%20group%20by%20x)a)%20and%201=1
j ai essayé d'accéder à cette page avec cette requête, mais rien ne s'affiche sur ma page, j 'ai un message d erreur car mon script php aime pas, comment il récupère le résultat de sa requête le mec ??
fraginfo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/11/2011, 14h48   #11
Invité régulier
 
Inscription : janvier 2006
Messages : 49
Détails du profil
Informations forums :
Inscription : janvier 2006
Messages : 49
Points : 9
Points : 9
Citation:
41.250.95.160 - - [03/Nov/2011:15:30:55 +0100] "GET /produit/index/?pid=65561%20and(select%201%20from(select%20count(*),concat((select%20(select%20concat(0x7e,0x27,Hex(cast(database()%20as%20char)),0x27,0x7e))%20from%20information_schema.tables%20limit%200,1),floor(rand(0)*2))x%20from%20information_schema.tables%20group%20by%20x)a)%20and%201=1 HTTP/1.1" 200 88733 "-" "-"
vois pas comment il récupère le résultat de sa requête ...
fraginfo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/11/2011, 15h31   #12
Modérateur
 
Avatar de CinePhil
 
Homme Philippe Leménager
Ingénieur d'études en informatique
Inscription : août 2006
Messages : 11 029
Détails du profil
Informations personnelles :
Nom : Homme Philippe Leménager
Âge : 48
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur d'études en informatique
Secteur : Enseignement

Informations forums :
Inscription : août 2006
Messages : 11 029
Points : 18 328
Points : 18 328
Envoyer un message via MSN à CinePhil
C'est exactement ce que SQLPro et moi pensions : tu es victime d'une injection SQL !

Documente-toi sur le sujet ; tu comprendras la cause et tu trouveras les méthodes pour t'en protéger.

Grosso modo, tu as dans ton site des url avec des paramètres faisant directement référence à un identifiant d'un élément de ta BDD, ici apparemment l'identifiant du produit.

Une url de ce genre :
ton_site//produit/index/?pid=une_valeur

Et toi tu t'attends naïvement à ce que tout utilisateur utilise l'interface pour que une_valeur soit celle de l'identifiant du produit sélectionné ou un truc du genre. Sauf que des petits malins détournent ça facilement en ajoutant à ce genre d'URL une requête SQL qui va espionner ta BDD.

Quelque part, un programme de ton site récupère le paramètre pour interroger la BDD de cette manière :
Code :
1
2
3
SELECT *
FROM produit
WHERE pid = une_valeur
Et avec la combine qui transforme une_valeur en une_valeur+une_requête, ça donne un truc de ce genre :
Code :
1
2
3
4
5
6
7
SELECT *
FROM produit
WHERE pid = une_valeur
UNION ALL
SELECT *
FROM information_schema.SCHEMATA
-- etc...

Bon courage !
C'est avec ce genre de problème qu'on apprend le plus !
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique.
Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework...
« Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française !
Linuxiens, comptez-vous !
CinePhil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/11/2011, 17h52   #13
Invité régulier
 
Inscription : janvier 2006
Messages : 49
Détails du profil
Informations forums :
Inscription : janvier 2006
Messages : 49
Points : 9
Points : 9
Citation:
Envoyé par CinePhil Voir le message
C'est exactement ce que SQLPro et moi pensions : tu es victime d'une injection SQL !

Documente-toi sur le sujet ; tu comprendras la cause et tu trouveras les méthodes pour t'en protéger.

Grosso modo, tu as dans ton site des url avec des paramètres faisant directement référence à un identifiant d'un élément de ta BDD, ici apparemment l'identifiant du produit.

Une url de ce genre :
ton_site//produit/index/?pid=une_valeur

Et toi tu t'attends naïvement à ce que tout utilisateur utilise l'interface pour que une_valeur soit celle de l'identifiant du produit sélectionné ou un truc du genre. Sauf que des petits malins détournent ça facilement en ajoutant à ce genre d'URL une requête SQL qui va espionner ta BDD.

Quelque part, un programme de ton site récupère le paramètre pour interroger la BDD de cette manière :
Code :
1
2
3
SELECT *
FROM produit
WHERE pid = une_valeur
Et avec la combine qui transforme une_valeur en une_valeur+une_requête, ça donne un truc de ce genre :
Code :
1
2
3
4
5
6
7
SELECT *
FROM produit
WHERE pid = une_valeur
UNION ALL
SELECT *
FROM information_schema.SCHEMATA
-- etc...

Bon courage !
C'est avec ce genre de problème qu'on apprend le plus !
oui j'ai bien compris la faille et je l'ai corrigée en vérifiant que le paramètre que le code PHP reçoit soit bien ce que j'attends !

Ce que je ne comprends pas, c'est comment il récupère le résultat de sa requête ?????? Il fait un select, ok mais il s'affiche où, comment le résultat ?
fraginfo est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 06h18.


 
 
 
 
Partenaires

Hébergement Web