Injection SQL : le chemin le plus rapide pour hacker un site web
Par netking,
dimanche 18 décembre 2005 à 00:59
::
Devzone
:: Permalink
L'injection SQL consiste à envoyer des commandes non-autorisées au serveur par le biais de d'entrées utilisateur dans les pages web (formulaires). De nombreuses pages demandent des informations à l'utilisateur et exécutent des requêtes dans la base de données. Par exemple, quand vous entrez votre login et votre mot de passe pour accéder à un forum, le résultat de la publication du formulaire de saisie est d'interroger la base de donnée pour vérifier la validité de vos identifiants. Avec l'injection SQL, vous pouvez utiliser ces champs pour envoyer des commandes spécifiques à la base pour obtenir un résultat que vous avez choisi (afficher la liste des mots de passe par exemple).
Pour réaliser des injections SQL, vous n'avez besoin que d'un seul logiciel : un navigateur web. Cependant, attention à l'endroit d'où vous effectuez ces essais : ceux-ci seront loggés par le serveur, et l'utilisation d'un proxy est fortement recommandée.
Essayez de cherche des pages qui vous permettent de soumettre des données (page de login, page de recherche, formulaire de contact, etc.). Parfois, les pages HTML (statiques) utilisent la commande POST pour envoyer des paramètres à une page dynamique (PHP). Vous ne verrez pas de paramètres dans l'url, mais vous pouvez regarder le code source et chercher le tag "FORM ". Vous risquez de trouver ce type de code :
<FORM action=Recherche/recherche.php method=post>
<input type=hidden name=A value=C>
</FORM>
Tout ce qui se trouve entre les balises <FORM> et </FORM> recèle des paramètres qui sont potentiellement exploitables.
Si vous ne trouvez pas de page qui font appel à des entrées utilisateurs, essayez les pages qui passent des paramètres comme :
http://www.webinterdit.com/index.asp?id=7
(pas la peine d'essayer chez nous, nous avons des protections en place...)
Pour tester une éventuelle vulnérabilité, commencez par essayer le guillemet simple.
Entrez quelque chose comme :
hi' or 1=1--
dans la case login, ou password, ou même dans l'URL. Par exemple :
Login : hi' or 1=1--
Mot de passe : hi' or 1=1--
http://www.webinterdit.com/index.asp?id=hi' or 1=1--
Si vous devez impérativement utiliser un champ avec le paramètre HIDDEN, téléchargez le source HTML puis modifiez l'URL et le champ masqué. Par exemple :
<FORM action=http://www.webinterdit.com/recherche/recherche.php method=post>
<input type=hidden name=A value="hi' or 1=1--">
</FORM>
Si vous avez de la chance (et que le webmaster est suicidaire), vous entrerez sans login ni mot de passe.
Pour ceux qui connaissent SQL, il est évident que ce type de commandes est la porte ouverte à la base de données : si on peut exécuter 1=1, on peut tout demander. La puissance du langage SQL n'est plus à démontrer.
Pour éviter l'injection SQL, il suffit de filtrer les caractères utilisés par le langage SQL (slash, guillemets simples et doubles, pipeline, etc.) dès qu'il s'agit :
- D'entrées utilisateurs
- De paramètres d'URL
- Valeur d'un cookie
Cette introduction à l'injection SQL est une approche simplifiée. La somme des techniques utilisables est immense, vous trouverez de nombreuses infos à ce sujet sur le web. Mais si vous testez un peu, vous verrez que de nombreux sites (même les plus grands) sont susceptibles d'être hackés. Personne n'est à l'abri d'un stagiaire qui oublie de protéger ses champs...














Tutoriaux WI

Commentaires
1. Le dimanche 18 décembre 2005 à 21:58, par d°0D
2. Le mardi 14 février 2006 à 17:04, par dr-brain
3. Le vendredi 3 mars 2006 à 23:15, par abc
4. Le samedi 4 mars 2006 à 12:31, par netking
5. Le samedi 6 mai 2006 à 21:22, par ?>
6. Le mardi 25 juillet 2006 à 22:54, par alex
7. Le samedi 29 juillet 2006 à 23:55, par Anonymous
8. Le jeudi 3 août 2006 à 19:01, par Sniker
9. Le jeudi 3 août 2006 à 19:06, par Sniker001
10. Le vendredi 11 août 2006 à 20:11, par Sylvain
11. Le vendredi 25 août 2006 à 15:58, par pol29
12. Le samedi 26 août 2006 à 23:05, par supercestchouette
13. Le samedi 16 septembre 2006 à 23:18, par damien
14. Le lundi 16 octobre 2006 à 14:17, par jo
15. Le mercredi 18 octobre 2006 à 18:18, par webstorm
16. Le lundi 20 novembre 2006 à 14:11, par test1
17. Le mercredi 22 novembre 2006 à 22:57, par bisbiscaillou
18. Le dimanche 31 décembre 2006 à 00:15, par Martagascos
19. Le mercredi 17 janvier 2007 à 19:04, par tony
20. Le jeudi 18 janvier 2007 à 12:35, par Ghost
21. Le lundi 26 février 2007 à 15:19, par Killyoh
22. Le mercredi 7 mars 2007 à 16:33, par chaity
23. Le dimanche 11 mars 2007 à 09:07, par doom
24. Le lundi 19 mars 2007 à 01:17, par bilou
25. Le mercredi 28 mars 2007 à 16:56, par wolfmic
26. Le dimanche 1 avril 2007 à 15:40, par dsa
27. Le mercredi 4 avril 2007 à 13:03, par Max007
28. Le jeudi 3 mai 2007 à 13:58, par Akira37
29. Le samedi 9 juin 2007 à 19:22, par vegeta77
30. Le dimanche 24 juin 2007 à 17:49, par Vince666666666
31. Le dimanche 15 juillet 2007 à 17:21, par bouman
Ajouter un commentaire