Accéder au contenu principal

les injections SQL


Il y'a quelques semaines, Yahoo a subi une attaque par injection SQL (details ici), les pirates auraient récupéré plus de 400000 identifiants. C'est un exemple d'attaque parmi tant d'autres. En effet plusieurs entreprises et individu enregistrent chaque année un viol de l’intégrité et de la confidentialité de leurs données. Mais ce n'ai ni Yahoo si les identifiants révélés qui vont nous intéresser, mais plutôt comment mettre en oeuvre une telle attaque et surtout comment s'en protéger.

1. Principe

Les injections SQL consistent à faire exécuter un code SQL malveillant à partir  d’une application qui fait des requêtes à un serveur de base de données. Les applications web et les sites internet sont d'excellents cibles car ils sont accessible de part le monde et beaucoup d'administrateurs et de développeurs n'assurent pas une sécurité raisonnable dans leurs systèmes.

2. L'environnement de test

Voici un exemple d'application qui peut subir l'attaque en question. L’utilisateur a un formulaire qui fourni les données au script PHP. Ce dernier vérifie dans la base de données si les informations soumises depuis le formulaire authentifie l’utilisateur. L’utilisateur est informé du résultat.


L’utilisateur en temps normale entre un nom d’utilisateur (ingc dans notre cas) et son mot de passe (esmt dans notre cas).
La requête SQL résultante est :
SELECT * FROM users WHERE username='ingc' and pw='esmt'

3. Exploitation

L’utilisateur malveillant peut entrer un nom d’utilisateur correct,
puis dans le champ de mot de passe l'expression suivante : ‘ OR ‘1
Dans ce cas, la requête résultante est:
SELECT * FROM users WHERE username='ingc' and pw='' OR '1‘
Cette requette liste toute la table users

4. Autre technique d'exploitation

Plus généralement, il est possible d’exécuter des requêtes SQL en utilisant « ; »  pour fermer la requête en cour et en écrivant ensuite n’importe quelle requête SQL.
Le code suivant, entré dans le champ de mot de passe vide la table:
'; DELETE FROM users WHERE 1 OR username = ‘
La requête résultante étant:
SELECT * FROM users WHERE username='ingc' AND pw=''; DELETE FROM users WHERE 1 OR username = ‘'

5. La parade

Avant de faire des requêtes à la base de données, il faut s’assurer que les informations du formulaire entré par les utilisateurs ne comportent pas de code malveillant.
PHP offre une fonction dans ce sens. Elle permet d’échapper tout code SQL éventuel dans une chaine de caractères avant de l’utiliser dans une requête.
string mysql_real_escape_string ( string $unescaped_string [, resource $link_identifier = NULL ] )


Ces dispositions mettent plus de chances de votre coté face aux pirates. Mais nul, même le meilleur n'est à l'abri, Yahoo en sait quelque chose.
Il est donc une très bonne pratique de sécurité que d'assurer la traçabilité des utilisateurs de vos sites web grâce à la géolocalisation et la journalisation des information d’accès au serveur. Il sera alors possible d'identifier la source des attaques même si vous n'y échappez pas. c'est mieux que rien.


Commentaires

Anonyme a dit…
However, they also like to remain inside their denomination - often 25-cent machines or $1 machines, and sometimes take a look at|have a glance at} slot play as a method to relieve day-to-day stress. Jackpots, progressives, and tournaments mean s’lots of fun! 1xbet Home to 1000's of the most recent machines, Southland Casino Hotel’s new state-of-the-art casino ground stretches two-and-a-half football fields long. From penny slots to excessive limits, there’s a recreation for every level of player.

Posts les plus consultés de ce blog

Gérer les requêtes USSD sur un MoDem avec les commandes AT

Introduction L'USSD (Universal Structured Service D) est un service des réseaux télécoms defini dans 3GPP TS 02.90 et dans 3GPP TS 23.090. Il permet à un terminal mobile d'effectuer des requetes ou une suite de requete à l'operateur. Il est courament utiliser pour consulter le solde. Dans ce tutoriel nous apprendrons à effectuer des requetes USSD depuis une connection serie avec une modem. Pré requis Pour utiliserons pour ce faire: un modem GSM (Huawei E1552) bien sur avec une carte SIM (AIRTEL Burkina) un ordinateur auquel sera connecte le modem un terminal (minicom) pour dialoger avec le modem depuis l'ordinateur perl, pour encoder et decoder les PDU Demarche Nous allons consulter le solde du compte de l'utilisateur. Pour l'opérateur courant il faut composer le code USSD *160#. connecter le modem Connectez le modem au port USB de l'ordinateur et retrouvez ses port series logiciels. Notre modem créé trois ports series (/dev/t

IANA TCP UDP Ports

Port TCP UDP Description Status 0 UDP Reserved Official 0 TCP Programming technique for specifying system-allocated (dynamic) ports[2] Unofficial 1 TCP UDP TCP Port Service Multiplexer (TCPMUX) Official 2 TCP UDP CompressNET[3] Management Utility[4] Official 3 TCP UDP CompressNET[3] Compression Process[5] Official 4 TCP UDP Unassigned Official 5 TCP UDP Remote Job Entry Official 7 TCP UDP Echo Protocol Official 8 TCP UDP Unassigned Official 9 UDP Wake-on-LAN Unofficial 9 TCP UDP Discard Protocol Official 10 TCP UDP Unassigned Official 11 TCP UDP Active Users (systat service)[6][7] Official 12 TCP UDP Unassigned Official 13 TCP UDP Daytime Protocol (RFC 867) Official 14 TCP UDP Unassigned Official 15 TCP UDP Previously netstat service[6] Unofficial 16 TCP UDP Unassigned Official 17 TCP UDP Quote of the Day Official 18 TCP UDP Message Send Protocol Official 19 TCP UDP Character Generator Protocol (CHARGEN) Official 20 TCP UDP FTP data transfer Official 21 TCP FTP 

INTERUPTEUR CREPUSCULAIRE

BUT : contrôler l’allumage et l’institution d’une lampe électrique en fonction de l’intensité de la lumière ambiante. FONCTIONNEMENT : le potentiomètre RV2 règle la sensibilité à la lumière. S’il fait assez noir, la lampe s’allume. Si par contre,s' il y’a assez de lumière alors la lampe s’éteint. La résistance variable RV1 permet de régler le décalage entre le seuil d’allumage et le seuil d’instinction. INTERET : sécurité, automatisation et économie d’énergie. SCHEMAS :