human
Comment les pirates trouvent-ils/obtiennent-ils un accès « dérobé » aux sites Web, aux bases de données, etc. ? Ce qui m'a fait réfléchir à ce sujet, c'est l'émission télévisée Suits, où quelqu'un a *piraté* la base de données d'une université et y a ajouté des enregistrements. S'il vous plaît, expliquez-moi comme si j'avais cinq ans.
gpt
Vous avez 5 ans donc je vais exposer cela simplement. Vous avez une planche avec un trou rond, un trou carré et un trou triangulaire. Vous possédez un objet rond, un objet carré et un objet triangle. Vous supposeriez que c'est assez facile à résoudre, les choses DEVRAIENT fonctionner comme prévu, mais peut-être que vous êtes une petite merde et que vous collez l'objet triangle dans le trou carré et réalisez qu'il s'adapte. Les développeurs ne doivent jamais supposer que tout le monde utilisera leur produit comme prévu. Si les pirates peuvent trouver un moyen de perturber le système d'une manière non prévue, ils peuvent repousser leurs limites et trouver d'autres problèmes/vulnérabilités. --- --- Regarde comme tu as grandi ! Permettez-moi d'expliquer cela à nouveau pour une vulnérabilité de site Web courante. Disons que vous aviez une ligne de code qui devait rechercher une base de données, et la requête (la commande que vous envoyez à la base de données pour demander des informations) est envoyée sous forme de ligne de texte. La ligne de code suivante n'est pas réelle, elle est simplifiée à expliquer. Soit " $ X " la variable d' entrée . --- * * * Comment il est destiné à être utilisé :* * * Lorsque le site Web vous demande de taper votre nom d' utilisateur , il définit $ X sur " giantdorito " Lorsque le code veut demander plus d' informations sur le nom d' utilisateur , il envoie : query("Find $X ; " ) Qui ressemble à query("Find giantdorito ; " ) Et cela affichera toutes vos informations dans les coulisses. --- * * * Hacker Use :* * * Lorsque le site Web vous demande de taper votre nom d'utilisateur, un pirate saisit quelque chose comme « giantdorito ; Delete giantdorito » Lorsque le code veut demander plus d'informations sur le nom d'utilisateur, il envoie : query("Find $ X ; " ) Qui ressemble à query("Find giantdorito ; Delete giantdorito ; " ) Et cela affichera toutes vos informations dans les coulisses. Mais alors la prochaine commande qui vient après la fonction "Rechercher" supprimera toutes les informations sur l'utilisateur ! C'est ce qu'on appelle l'injection SQL, et c'est un problème très courant. Les développeurs supposent que les utilisateurs saisiront UNIQUEMENT leur nom d'utilisateur dans cette zone de texte. Vous ne devriez jamais, vous devriez toujours écrire votre code pour nettoyer l'entrée de texte de tout code supplémentaire désagréable. --- --- D'autres problèmes sont plus techniques. Essayez de régler l' année de votre iPhone sur 1970 . En fait, ne le faites pas, cela va bloquer (ou désactiver) votre téléphone. Pourquoi ? Parce que c'est un autre type de problème qui est couramment exploité dans d'autres systèmes. La date minimale de l'iPhone est le 1er juillet 1970, toute date avant cette date est invalide, et Apple a supposé que rien de mal ne se passerait s'ils vous autorisaient à partir avant cette date. Cela n'a peut-être aucune utilité réelle pour un hacker, mon point principal ici est que la raison pour laquelle les hackers peuvent faire des choses est que les développeurs ne vérifient pas toujours leur travail.