Bonjour et Bienvenue sur mon autre instructable. Dans ce instructable je vais vous dire comment à pirater A site Web en moins de 2 minutes à l’aide d’Injection SQL.
'' Je ne suis pas responsable de tout piratage fait par n’importe qui ''
Introduction à l’injection de code Sql :
Une injection SQL est une sorte de vulnérabilité dans laquelle
l’attaquant tente d’injecter des pièces arbitraires de données malveillantes dans les champs de saisie d’une demande, qui, lors du traitement par l’application, fait que les données à être exécuté comme un morceau de code de SQL server back-end, donnant ainsi considérée comme indésiré qui entraîne le développeur de l’application ne s’attendait pas. Le serveur d’arrière-plan peut être n’importe quel serveur SQL (MySQL, MSSQL, ORACLE, POSTGRESSQL, pour n’en nommer que quelques-uns)
La capacité de l’attaquant d’exécuter du code (instructions SQL) par le biais des paramètres d’entrée vulnérables autorise à interagir directement avec le serveur SQL server back-end, exploitant ainsi presque un compromis complète du système dans la plupart des cas.
Pourquoi se produit-il injection SQL ?
Généralement quand une application communique avec le backend
base de données, qu’il le fasse sous la forme de requêtes à l’aide d’un pilote de base de données sous-jacente. Ce pilote est tributaire de la plateforme d’applications utilisées et le type de backend de base de données, telles que MYSQL, MSSQL, DB2 ou ORACLE.
Une requête de connexion générique pourrait ressembler à ceci :
« SELECT Column1, Column2, Colonne3 de table_name WHERE username =' $variable1′ et mot de passe = « $variable2′; »
Nous pouvons diviser cette requête en deux parties, la section de code et la section de données. La section de données est le $variable1 et $variable2 et les guillemets sont utilisés autour de la variable pour définir la limite de la chaîne.
Laissez-nous essayer de marcher à travers le processus de manière brute. Dire le formulaire de connexion, le nom d’utilisateur entré est Admin et mot de passe est p qui est perçue par l’application et les valeurs de $variable1 et $variable2 sont placées à leur emplacement respectif dans la requête, ce qui en fait quelque chose comme ça.
« Sélectionnez Colonne1, Colonne2, Colonne3 de table_name où username = « Admin » et mot de passe ='p
Maintenant le développeur suppose que les utilisateurs de son application mettra toujours une combinaison nom d’utilisateur et mot de passe pour obtenir une requête valide pour l’évaluation de base de données principale. Que se passe-t-il si l’utilisateur est malveillant et entre certains caractères qui ont une signification particulière dans la requête ? Par exemple, un guillemet simple. Ainsi, au lieu de mettre Admin, il met Admin', ainsi causant l’erreur levée par le pilote de la DB. Pourquoi ? En raison de la citation non appariée entrée par l’utilisateur rompre la logique d’application.