Comment pirater un site ?
Failles dans la conception du site
Les failles dans les sites Internet sont le lot quotidien de tout webmaster. Cela ne concerne pas seulement les débutants, les novices. Non, cela concerne bel et bien tout le monde. Et pour exemple je vais prendre l'exemple d'Olivier Duffez, pourtant webmaster expérimenté. En l'occurrence il s'agissait - a priori - d'une faille dans Gmail, pourtant célèbre !
Mais comment pirater un site internet ?
On retrouve ici le Social Engineering (l'art de la supercherie), sans cesse et toujours valable.
D'une manière très générale on va trouver ici toute sorte de failles, mais dans un premier temps on va trouver les failles les plus populaires : les injections.
Injections
Les injections, je vais vous les présenter très brièvement. Les sites internet récents ne se contentent plus d'afficher du texte à l'écran (même si c'est le cas de ce site), les sites récents s'intéressent à l'internaute, ils interagissent avec lui : espaces membres, messagerie privée, etc. Les sites internet ont donc besoin d'informations que vous leur transmettez (votre identifiant, votre mot de passe, etc.). A chaque formulaire que vous remplissez sur Internet, vous envoyez des données au site Internet, qui ensuite les traite. Des données sont aussi envoyés de différentes manières, par exemple lorsque vous cliquez sur un lien, ou encore même automatiquement via vos cookies, etc.
Toutes ces données que vous envoyez sont traitées par le site Internet. Pour cela, les données envoyées sont rajoutées quelque part dans le code de l'application. Les injections consistent à envoyer des données qui cassent les codes des applications pour effectuer des manipulations qui n'étaient pas prévues à l'origine. Parmi les injections les plus populaires on trouve les SQL Injection.
Comment détecter une faille de type SQL Injection sur un site ?
Contrairement à ce que l'on pourrait penser, savoir si un site est vulnérable à une SQL injection est très facile. Pour cela il suffit de tester si le site est correctement configuré en modifiant la requête SQL d'un formulaire. Dans notre exemple, nous modifions la requête http://www.site.com/news.php?id=5 en http://www.site.com/news.php?id=5' (on ajoute ' à la fin). Si nous obtenons une erreur, comme « You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right... » ou quelque chose de semblable, cela signifie que le site est vulnérable aux injections SQL.
Failles dans un module du site
Bien souvent, aujourd'hui, on ne crée plus un site de bout en bout par soi-même. De plus en plus de personnes utilisent des outils qui les aident dans la création de leurs sites. Ces outils, bien souvent, génèrent du code qui est prêt à l'emploi pour le développeur. Des tâches répétitives peuvent ainsi être automatisées, etc.
L'inconvénient de ces outils, tels que les gestionnaire de contenu (CMS), est qu'ils génèrent du code qui n'est pas toujours fiable. Et ce code est d'autant moins fiable qu'il est souvent "open-source". Les forums phpBB, extrêmement répandus par ailleurs, ont souffert à de nombreuses reprises de failles de sécurité. Pour cela, il faut installer des mises à jour (quand elles sont disponibles) et vérifier régulièrement si nous possédons les dernières versions de nos outils. Mais cela ne suffit pas : certains outils ne sont pas maintenus, les mises à jour arrivent souvent trop tard, etc.
Une toute petite faille dans un programme par ailleurs très lourd et très fiable peut se révéler destructrice pour un site tout entier.