188BET×ãÇò

Skip to content Skip to navigation Skip to footer

Signification du langage de requ¨ºte structur¨¦ (SQL)

Le langage de requ¨ºte structur¨¦ (SQL) est le langage standard utilis¨¦ pour interroger une base de donn¨¦es. (Notez qu¡¯une requ¨ºte effectu¨¦e dans un moteur de recherche tel que Google ou Bing est diff¨¦rente.)?

Une injection SQL (SQLi) est un type d¡¯attaque dans laquelle les cybercriminels tentent d¡¯exploiter les vuln¨¦rabilit¨¦s du code d¡¯une application en ins¨¦rant une requ¨ºte SQL dans des champs de saisie ou de formulaire r¨¦guliers, tels qu¡¯un nom d¡¯utilisateur ou un mot de passe. L¡¯instruction SQL est ensuite transmise ¨¤ la base de donn¨¦es SQL sous-jacente de l¡¯application.

Les attaques par injection SQL?r¨¦ussissent lorsque le formulaire?d¡¯entr¨¦e Web permet aux instructions SQL g¨¦n¨¦r¨¦es par l¡¯utilisateur d¡¯interroger directement la base de donn¨¦es.?Ces attaques ont ¨¦galement prolif¨¦r¨¦ avec l¡¯utilisation de bases de code partag¨¦es, telles que les plug-ins WordPress, qui?contiennent une vuln¨¦rabilit¨¦ dans le mod¨¨le de code sous-jacent. Cette vuln¨¦rabilit¨¦ est transmise ¨¤ l¡¯ensemble de l¡¯application et peut affecter des?centaines de milliers de sites Web qui utilisent tous ce code partag¨¦.

Les dommages peuvent ¨ºtre consid¨¦rables. Un attaquant ayant une bonne connaissance de SQL saisit des requ¨ºtes sur une application Web sans param¨¨tres de validation d¡¯entr¨¦e en place, puis acc¨¨de facilement aux fichiers clients d¡¯une entreprise ou aux informations financi¨¨res sensibles.

Que sont les requ¨ºtes SQL??

Les requ¨ºtes sont utilis¨¦es pour trouver des donn¨¦es sp¨¦cifiques bas¨¦es sur des crit¨¨res fournis par l¡¯utilisateur. SQL est l¡¯une des nombreuses langues qui ex¨¦cutent les bases de donn¨¦es pour les applications, qui peuvent ¨ºtre con?ues pour un usage interne par une organisation ou publi¨¦es sur Internet et accessibles au public. Outre la recherche de donn¨¦es, les requ¨ºtes SLQ peuvent effectuer des calculs, r¨¦sumer les donn¨¦es et automatiser les t?ches.

Types d¡¯injections SQL

SQLi dans la bande

Les SQLi en bande sont un type d¡¯attaque courant et sont connus pour leur simplicit¨¦ et leur efficacit¨¦. Cette m¨¦thode pr¨¦sente deux variantes?: bas¨¦e sur les erreurs et bas¨¦e sur les syndicats.?

1. SQLi bas¨¦ sur les erreurs

Les attaquants injectent des requ¨ºtes SQL dans l¡¯espoir que la base de donn¨¦es renverra des messages d¡¯erreur, qui peuvent donner aux attaquants des informations sur la base de donn¨¦es et sa structure.?

2. SQLi bas¨¦ sur UNION

Dans ce sc¨¦nario, les attaquants utilisent l¡¯op¨¦rateur SQL UNION pour la base de donn¨¦es afin de renvoyer une seule r¨¦ponse HTTP (Hypertext Transfer Protocol). Les attaquants peuvent ensuite ¨¦valuer la r¨¦ponse ¨¤ la recherche d¡¯indices sur le contenu d¡¯une base de donn¨¦es.?

SQLi inf¨¦rentiel (aveugle)

Dans les attaques SQLi inf¨¦rentielles ou aveugles, les fraudeurs interrogent la base de donn¨¦es et observent le comportement du serveur pour recueillir des informations sur la structure de la base de donn¨¦es. Ces types d¡¯attaques sont plus lents, mais ils peuvent ¨ºtre tout aussi nuisibles que d¡¯autres types d¡¯iSQL. Il en existe deux types?: bool¨¦en et bas¨¦ sur le temps.?

1. Bool¨¦en

L¡¯assaillant interroge la base de donn¨¦es, et en ¨¦tudiant si la r¨¦ponse HTTP a ¨¦t¨¦ modifi¨¦e ou est rest¨¦e la m¨ºme, il peut d¨¦terminer si le r¨¦sultat ¨¦tait vrai ou faux.?

2. Bas¨¦ sur le temps

Comme son nom l¡¯indique, l¡¯assaillant ¨¦tudie le temps de r¨¦ponse, en secondes, d¡¯un r¨¦sultat de requ¨ºte. Comme pour le type bool¨¦en, l¡¯attaquant examine de pr¨¨s la r¨¦ponse HTTP pour d¨¦terminer si la requ¨ºte ¨¦tait vraie ou fausse.

SQLi hors bande

Il s¡¯agit d¡¯un cas SQLi sp¨¦cial qui ne peut fonctionner que si certaines fonctionnalit¨¦s du serveur de base de donn¨¦es utilis¨¦es par l¡¯application sont activ¨¦es. Les SQLi hors bande sont consid¨¦r¨¦es comme une alternative aux techniques in-band et inf¨¦rentielles. SQLi hors bande ne s¡¯appuie pas sur l¡¯attaquant qui interroge la base de donn¨¦es pour examiner les messages d¡¯erreur ou les r¨¦ponses HTTP. Au contraire, il attend du serveur qu¡¯il g¨¦n¨¨re des demandes DNS (Domain Name System) ou HTTP afin que l¡¯attaquant puisse obtenir des donn¨¦es telles que des noms d¡¯utilisateur et des mots de passe.?

Exemples d¡¯injection SQL (SQLi)

Une injection SQL manipule une requ¨ºte SQL standard pour exploiter les vuln¨¦rabilit¨¦s dans la base de donn¨¦es sous-jacente de l¡¯application. Examinons quelques exemples de code pour voir comment cela fonctionne.?

Une requ¨ºte typique de base de donn¨¦es SQL pour une application de commerce ¨¦lectronique peut ressembler ¨¤ ce qui suit?:

S?LECTIONNER le nom du produit, la description du produit
DEPUIS les produits
O? Num¨¦ro de produit = Num¨¦ro de produit

Si un attaquant souhaite acc¨¦der ¨¤ tous les noms et descriptions de produits dans la base de donn¨¦es, m¨ºme ceux auxquels il n¡¯est pas autoris¨¦ ¨¤ acc¨¦der, il saisira un URL (Uniform Resource Locator) similaire ¨¤ celui-ci dans le formulaire Web ¨¤ l¡¯¨¦cran?: http://www.ecommercesite.com/products/products.asp?productid=999 or 1=1. The?la requ¨ºte SQL correspondante sera la suivante?:?

S?LECTIONNER le nom du produit, la description du produit
DEPUIS les produits
O? Num¨¦ro de produit = 999 OU 1 = 1

Si un attaquant souhaite supprimer une base de donn¨¦es enti¨¨re, il peut tirer parti de caract¨¨res mal filtr¨¦s, en saisissant http://www.ecommercesite.com/products/products.asp?productid=999; DROP TABLE?pour g¨¦n¨¦rer la requ¨ºte SQL suivante?:

S?LECTIONNER le nom du produit, la description du produit
DEPUIS les produits
O? Num¨¦ro de produit = 999?; UTILISATEURS DE LA TABLE DE D?P?T

Par cons¨¦quent, l¡¯ensemble de la base de donn¨¦es des utilisateurs peut ¨ºtre abandonn¨¦e ou supprim¨¦e.

Comment pr¨¦venir l¡¯injection SQL (SQLi)

¶Ù¨¦²õ¾±²Ô´Ú±ð³¦³Ù¾±´Ç²Ô

Si les attaquants peuvent saisir une requ¨ºte inattendue que l¡¯application accepte, il est logique de limiter la fonctionnalit¨¦ d¡¯entr¨¦e pour prot¨¦ger les donn¨¦es. Les d¨¦veloppeurs peuvent utiliser la validation des entr¨¦es ou la d¨¦sinfection, de sorte que l¡¯application n¡¯accepte que certaines entr¨¦es dans les champs de formulaire et rejette celles qui ne sont pas conformes. Les utilisateurs Web connaissent cette pratique. Par exemple, lorsqu¡¯ils sont invit¨¦s ¨¤ cr¨¦er un mot de passe qui doit comporter un certain nombre de caract¨¨res et inclure au moins un caract¨¨re sp¨¦cial.

Cependant, ce n¡¯est pas une solution id¨¦ale, car il est difficile de planifier toutes les combinaisons d¡¯entr¨¦e autoris¨¦es. Un nombre important d¡¯erreurs r¨¦sultera d¡¯utilisateurs, qui peuvent ¨ºtre des employ¨¦s ou des clients. Cela peut affecter consid¨¦rablement les op¨¦rations commerciales.?

Filtrage et validation

Pour filtrer les SQLi et bloquer les menaces potentielles, les entreprises peuvent installer un pare-feu applicatif?Web (WAF). Un WAF fait correspondre les entr¨¦es d¡¯une application ¨¤ une grande liste de signatures connues pour contrecarrer les requ¨ºtes SQL malveillantes. La liste est mise ¨¤ jour et corrig¨¦e r¨¦guli¨¨rement afin qu¡¯une organisation puisse suivre l¡¯¨¦volution du paysage des menaces.

Limiter la port¨¦e des commandes SQL

Bien que le filtrage pour?SQLi?soit n¨¦cessaire, le blocage de 100?% des requ¨ºtes SQL n¡¯est pas possible. Les employ¨¦s, les partenaires ou les experts du secteur de la s¨¦curit¨¦ peuvent devoir tester l¡¯application et auront besoin d¡¯une autorisation pour le faire. Le WAF peut v¨¦rifier l¡¯entr¨¦e avec des donn¨¦es IP (Internet Protocol) avant de bloquer la demande.?

?viter les param¨¨tres URL non s¨¦curis¨¦s

Si un site Web n¡¯utilise pas Hypertext Transfer Protocol Secure (HTTPS), qui tire parti de la s¨¦curit¨¦ SSL/TLS (Secure Sockets Layer/Transport Layer) pour le cryptage, un attaquant peut manipuler le cookie de session avec SQLi pour acc¨¦der ¨¤ la base de donn¨¦es. Les organisations doivent s¨¦curiser leurs URL de sites Web et d¡¯applications Web pour ¨¦viter cela.

FAQ sur l¡¯injection SQL

Comment pr¨¦venir les attaques par injection SQL??

Les d¨¦veloppeurs peuvent utiliser la validation des entr¨¦es ou la d¨¦sinfection, de sorte que l¡¯application n¡¯accepte que certaines entr¨¦es dans les champs de formulaire et rejette celles qui ne sont pas conformes.

Pourquoi les hackers utilisent-ils l¡¯injection SQL??

Les hackers utilisent l¡¯injection SQL pour obtenir un acc¨¨s non autoris¨¦ aux donn¨¦es, ou aux informations sur ces donn¨¦es, stock¨¦es dans la base de donn¨¦es d¡¯une application Web.

L¡¯injection SQL est-elle ill¨¦gale??

Dans la plupart des cas, l¡¯injection SQL est ill¨¦gale, bien que cela d¨¦pende des limites juridictionnelles.

Comment fonctionne l¡¯injection SQL??

Une injection SQL (SQLi) est un type d¡¯attaque dans laquelle les cybercriminels tentent d¡¯exploiter les vuln¨¦rabilit¨¦s du code d¡¯une application en ins¨¦rant une requ¨ºte SQL dans des champs de saisie ou de formulaire r¨¦guliers, tels qu¡¯un nom d¡¯utilisateur ou un mot de passe.

L¡¯injection SQL peut-elle ¨ºtre trac¨¦e??

Une organisation peut utiliser des donn¨¦es IP pour d¨¦tecter o¨´ la requ¨ºte a ¨¦t¨¦ initialement saisie, mais l¡¯identit¨¦ de l¡¯attaquant ne peut pas ¨ºtre confirm¨¦e en examinant simplement la requ¨ºte d¡¯injection SQL uniquement.

Plus de ressources sur l¡¯injection SQL

Parler ¨¤ un expert

Veuillez remplir le formulaire ci-dessous. Un de nos collaborateurs vous contactera dans les plus brefs d¨¦lais.