Je lisais un article sur la contrefaçon de demande côté serveur . Dans cet article, l'attaquant a découvert qu'il 127.0.0.1
était ouvert à Internet. La victime a ensuite bloqué 127.0.0.1
, mais parce que de nombreuses autres adresses IP et apparemment aussi certains domaines sont également résolus à cela, y compris le mystérieux localtest.me
, il a pu contourner un filtre textuel faible.
Qu'est-ce qui est si spécial
localtest.me
?Y en a-t-il d'autres? (Et comment les trouver?)
MISE À JOUR
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 cela fonctionne. Le nom de domaine entier localtest.me et toutes les entrées génériques pointent vers 127.0.0.1. Ainsi, 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 enregistrer un domaine externe sur un domaine local. C'est déroutant car tracert localtest.me
jamais même ne quitte la machine. Comment est-ce géré à bas niveau?
J'en 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 des questions similaires sur Stack Overflow.
bealocalhost.de
Réponses:
Il n'y a rien qui "lie" le domaine à son adresse de la manière que vous imaginez. Tout comme un annuaire téléphonique, DNS vous indique simplement quelle est l'adresse - mais c'est là que son implication se termine. (Vous ne composez pas "Pizza Hut" sur le téléphone; vous recherchez leur numéro de téléphone et composez le numéro.)
Ainsi, lorsque quelqu'un enregistre un nom de domaine, il a juste la possibilité de modifier ces enregistrements de répertoire. Mais pour "pointer" un nom de domaine quelque part - disons
127.0.0.1
- ils ajoutent cette ligne à sa base de données:C'est ça. Celui qui pose des questions
localtest.me
obtient maintenant la réponse "Oh, c'est à127.0.0.1
."Ainsi, lorsque vous tapez
tracert localtest.me.
, il demande d'abord à DNS l'adresse associée; obtient la réponse 127.0.0.1; puis se comporte exactement comme si vous aviez couru à latracert 127.0.0.1
place. Pas de magie du tout.À ce stade, il doit être clair que tout propriétaire de domaine peut le faire sans aucun effort, il existe donc toujours une probabilité que d'autres domaines de ce type existent à un moment donné. Étant donné que les données DNS sont réparties sur de nombreux systèmes (parfois même générées dynamiquement), vous ne pouvez vraiment pas toutes les trouver, ou même vous attendre à ce que vos résultats restent précis après quelques secondes.
Mais pour des raisons de sécurité, vous n'avez pas besoin de les trouver tous. Certains résolveurs DNS ont déjà en fait une sorte de filtrage pour ces entrées (appelé «protection de reliure DNS»), et ils ne recherchent pas de questions spécifiques - ils ne regardent que la réponse . La fonction de protection bloque simplement les réponses qui pointent vers n'importe quelle adresse locale.
Cependant, avant de demander, cela ne peut pas être interdit à l'échelle mondiale - le fait de pointer des noms de domaine vers des adresses privées est toujours une utilisation parfaitement légitime du DNS et est utilisé dans la pratique dans de nombreux réseaux.
la source
Il existe d'autres réponses qui entrent dans les détails, mais le cœur de cette question est vraiment simple à répondre:
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 n'importe quelle raison; vous pouvez même enregistrer un nom de domaine sans avoir d'adresse IP de destination en place. 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 ensuite, attribuer une adresse IP à ce nom de domaine est un tout autre processus. N'importe qui peut attribuer n'importe quelle adresse IP à un nom de domaine s'il contrôle ce nom de domaine. Le registraire de nom de domaine n'a aucun souci ou préoccupation concernant la pile d'adresses brutes que vous attribuez à un nom de domaine.
Tout un nom de domaine est simplement un pointeur qui facilite la vie. Considérez-le comme un alias pour que les gens n'aient pas à mémoriser des piles de chiffres (IPv4) ou des chiffres et des lettres (IPv6).
C'est ça!
Mais ce qui s'est passé - comme l'explique la page que vous avez visitée - n'était pas un «hack» de chaque système dans l'adresse locale «127.0.0.1» du monde, mais plutôt une faille sur ce système spécifique lui-même.
Mais pour clarifier davantage cela - et cela m'a aussi fait trébucher comme vous l'avez dit - lorsque vous dites:
J'ai également lu cet article , 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
ce n'était pas que l'adresse IP127.0.0.1
était exposée à Internet. Au contraire, l'outil lui-même avait une faille qui permettait à quiconque de sonder le serveur interne sur lequel l'outil s'exécutait en utilisant127.0.0.1
. Et puisque cet outil était explicitement un outil de piratage qui a été utilisé pour détecter les ports ouverts et autres, en utilisant127.0.0.1
cette application spécifique, il a pu sonder son propre réseau local et, clé ici, transmettre ces informations à quelqu'un qui accède à l'outil via un simple navigateur Web .Le risque présenté n'était pas que tout le monde
127.0.0.1
soit exposé à Internet, mais plutôt qu'un codage bâclé sur un seul outil sur un seul site permettait que cela se produise.la source
Il pointe vers 127.0.0.1 (localhost). Cette adresse est toujours réservée à l'ordinateur local.
Oui. Google et Super User sont vos amis (comme vous l'avez découvert).
Vous manquez la demande DNS initiale (externe) .
tracert
affiche le chemin emprunté par un paquet, mais avant qu'un paquet ne puisse aller n'importe où, l'ordinateur doit connaître l'adresse IP à laquelle l'envoyer. Avec des mises en garde, si vous n'avez jamais visité locatest.me auparavant, une demande DNS est faite aux résolveurs externes pour découvrir qu'il correspond à 127.0.0.1. Les données renvoyées sont ensuite utilisées localement (par exemple pourtracert
ou afficher du contenu Web). Et rappelez-vous que DNS peut mapper n'importe quel nom d'hôte à n'importe quelle IP - il ne "sait" pas si une IP est locale ou non.la source