web-dev-qa-db-fra.com

Pourquoi le nom de domaine enregistré "localtest.me" est-il résolu en 127.0.0.1?

J'étais en train de lire un article about _ {Requête côté serveur. Dans cet article, l'attaquant a découvert que 127.0.0.1 était ouvert à Internet. La victime a ensuite bloqué 127.0.0.1, mais comme de nombreux autres IP et apparemment aussi certains domaines sont résolus, y compris le mystérieux localtest.me, il a pu contourner un filtre textuel faible.

  1. Qu'est-ce qui rend localtest.me si spécial?

  2. Y a-t-il d'autres? (et comment les trouver?)


UPDATE

J'ai trouvé: http://readme.localtest.me/

Apparemment, quelqu'un a décidé d'enregistrer ce domaine de manière amusante, à des fins de test:

Voici comment ça fonctionne. Le nom de domaine complet localtest.me et toutes les entrées génériques pointent vers 127.0.0.1. Donc, sans aucune modification de votre fichier hôte, vous pouvez immédiatement commencer à tester avec une URL locale.

Cependant, je ne sais toujours pas comment vous pouvez enregistrer un domaine externe sur un domaine local. C'est déroutant, car un tracert localtest.me ne quitte jamais la machine. Comment cela est-il géré au bas niveau?

J'ai ensuite trouvé plusieurs autres dans ces commentaires et ailleurs:

lvh.me 
vcap.me
fuf.me - IPv4 and IPv6
ulh.us
127-0-0-1.org.uk
ratchetlocal.com
smackaho.st
42foo.com
beweb.com
yoogle.com
ortkut.com
feacebook.com

Et dans similairequestions sur débordement de pile.

28
not2qubit

Il y a d'autres réponses qui vont plus en détail, mais le noyau de cette question est très simple:

"Cependant, je ne sais toujours pas comment vous pouvez enregistrer un domaine externe sur un domaine local."

L'enregistrement d'un nom de domaine et l'attribution d'une adresse IP sont deux choses complètement différentes et indépendantes.

N'importe qui peut enregistrer n'importe quel nom de domaine pour quelque raison que ce soit; vous pouvez même enregistrer un nom de domaine sans avoir d'adresse IP de destination. Il faut simplement payer le registraire de domaine, en passant par la «paperasse» virtuelle, puis, comme par magie, vous avez un nom de domaine. Tout ce que vous payez lorsque vous enregistrez un nom de domaine est le nom de domaine lui-même, ainsi que la possibilité (voir ci-dessous) d'attribuer une adresse IP à un nom de domaine.

Mais alors l'attribution d'une adresse IP à ce nom de domaine est un processus totalement différent. N'importe qui peut affecter any une adresse IP à un nom de domaine s'ils ont le contrôle de ce nom de domaine. Le registraire de nom de domaine ne se soucie pas de savoir quelle pile d'adresses brutes vous attribuez à un nom de domaine.

Tout un nom de domaine est simplement un pointeur qui facilite la vie. Pensez-y comme à un alias pour que les gens n’aient pas à mémoriser des piles de chiffres (IPv4) ni des chiffres et des lettres (IPv6).

C'est tout!

Mais ce qui s’est passé - comme expliqué dans la page que vous avez consultée - n’est pas un «piratage» de tous les systèmes de l’adresse «127.0.0.1» locale du monde, mais plutôt un défaut de ce système spécifique.

Mais pour clarifier davantage ceci - et cela m'a fait trébucher la façon dont vous l'avez également formulé - lorsque vous déclarez:

Je lisais un article sur Requête côté serveur falsification . Dans cet article, l'attaquant a constaté que 127.0.0.1 était ouvert à Internet.

J'ai lu cet article aussi, et voici ce qui s'est passé: quelqu'un utilisait un outil en ligne qui vous permettait de pointer cet outil vers n'importe quelle adresse IP/nom d'hôte. Quand ils ont pointé cet outil à 127.0.0.1, l'adresse IP 127.0.0.1 n'a pas été exposée à Internet. Au lieu de cela, l'outil lui-même avait une faille qui permettait à quiconque de sonder le serveur interne sur lequel cet outil s'exécutait à l'aide de 127.0.0.1. Et puisque cet outil était explicitement un outil de piratage utilisé pour détecter les ports ouverts et autres, en utilisant 127.0.0.1, cette application spécifique était capable de sonder son propre localhost network et - clé ici - de transmettre ces informations à une personne accédant l'outil via juste un navigateur web.

Le risque présenté n'était pas que chaque 127.0.0.1 soit exposé à Internet, mais plutôt que le codage bâclé sur un outil sur un site permettait que cela se produise.

16
JakeGould

Quelle est la particularité de localtest.me ?

Il pointe vers 127.0.0.1 (localhost). Cette adresse est toujours réservée à l'ordinateur local.

Y en a-t-il d'autres? (Et comment les trouver?)

Oui. Google et le super utilisateur sont vos amis (comme vous l'avez découvert).

Je ne sais toujours pas comment vous pouvez enregistrer un domaine externe sur un [IP] local. C'est déroutant, car un tracert localtest.me ne quitte jamais la machine. Comment cela est-il géré au bas niveau?

Il vous manque la requête initiale (externe) DNS request. tracert affiche le chemin emprunté par un paquet, mais avant qu’un paquet puisse aller n’importe où, l’ordinateur doit connaître l’adresse IP à laquelle l’envoyer. Avec des réserves, si vous n'avez jamais visité locatest.me avant, une requête DNS est adressée aux résolveurs externes pour découvrir qu'elle est mappée sur 127.0.0.1. Les données renvoyées sont ensuite utilisées localement (par exemple, pour tracert ou pour afficher du contenu Web). Et rappelez-vous que DNS peut mapper n'importe quel nom d'hôte sur n'importe quelle adresse IP. Il ne "sait" pas si une adresse IP est locale ou non.

8
Anaksunaman