私はサーバーサイドリクエストフォージェリに関する記事を読んでいました。その記事の中で、攻撃者は127.0.0.1
がインターネットに公開されていることを発見しました。被害者はその後 127.0.0.1
をブロックしましたが、謎の localtest.me
を含め、他の多くの IP や、明らかにいくつかのドメインもそれに解決されているため、弱いテキストベースのフィルタを迂回することができました
localtest.me
の何がそんなに特別なの?他にもあるのか?(そして、どうやって見つけるのか?)
UPDATE
見つけました。http://readme.localtest.me/
どうやら誰かがテストのためにおかしな方法でドメインを登録することにしたようです
これがどのように動作するかを説明します。ドメイン名 localtest.me 全体と、すべてのワイルドカードエントリは 127.0.0.0.1 を指しています。そのため、ホストファイルを変更することなく、ローカルの URL ですぐにテストを開始することができます
しかし、外部ドメインをローカルドメインに登録する方法がまだよくわかりません。tracert localtest.me
がマシンから出ることすらないので、これは混乱します。これは低レベルではどのように処理されているのでしょうか?
私はその後、これらのコメントや他の場所でさらにいくつかのことを発見しました
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
また、スタックオーバーフローのsimilarでは、questionsとなっています
31 not2qubit 2017-12-29
しかし、外部ドメインをローカルドメインに登録する方法がまだよくわかりません。tracert localtest.meがマシンから出ることすらないので、これは混乱します。これは低レベルではどのように処理されているのでしょうか?
あなたが想像するような方法で、ドメインとそのアドレスを「結びつける」ものは何もありません。電話帳のように、DNSは単にアドレスが何であるかを教えてくれるだけです。(電話で「ピザハット」にダイヤルするのではなく、電話番号を調べてその番号にダイヤルします。)
つまり、誰かがドメイン名を登録すると、電話帳のレコードを編集する能力を得ることができます。しかし、実際にドメイン名をどこかに「ポイント」するためには – 例えば 127.0.0.1
にしてみましょう – この行をデータベースに追加します
localtest.me. A 127.0.0.1
これで終わりです。localtest.me
について質問した人は、”ああ、127.0.0.1
にある “という答えが返ってくるようになりました
そのため、tracert localtest.me.
と入力すると、最初に関連付けられたアドレスについてDNSに問い合わせ、127.0.0.0.1という答えを得て、代わりにtracert 127.0.0.1
を実行したのと全く同じ挙動をします。魔法のようなものではありません
他にもあるのか?(そして、どうやって見つけるのか?)
この時点で、ドメインの所有者であれば誰でも何の努力もせずにこれを行うことができることは明らかであり、そのようなドメインが常に存在している可能性があります。DNSデータは多くのシステムに分散されているため(時には動的に生成されることもあります)、すべてのドメインを見つけることはできませんし、数秒後に正確な結果が得られるとは限りません
しかし、セキュリティのためには、すべてを見つける必要はありません。いくつかのDNSリゾルバは、実際にはそのようなエントリに対するフィルタリングのようなものをすでに持っています(「DNSリバインディング保護」と呼ばれています)。この保護機能は、任意のローカルアドレスを指す回答をブロックするだけです
ドメイン名をプライベートアドレスに指定することは、今でもDNSの完全に合法的な使用法であり、多くのネットワークで実際に使用されています
69 user1686 2017-12-29
他にも深く掘り下げた回答がありますが、この質問の核心は本当にシンプルな答えです
“とはいえ、外部ドメインをローカルドメインに登録する方法はまだよくわかりません。”
ドメイン名の登録とIPアドレスの割り当ては、全く異なる独立したものです
誰でもどんな理由でもドメイン名を登録することができます。ドメインレジストラに支払いをして、仮想的な「事務処理」を行うだけで、魔法のようにドメイン名を手に入れることができます。ドメイン名を登録する際に支払うのは、ドメイン名自体だけでなく、ドメイン名にIPアドレスを割り当てることができます
しかし、そのドメイン名にIPアドレスを割り当てるのは全く別のプロセスです。ドメイン名を管理していれば、誰でもドメイン名に任意のIPアドレスを割り当てることができます。ドメイン名のレジストラは、あなたがドメイン名に割り当てた生のアドレスの山を気にしたり、気にしたりすることはありません
ドメイン名とは、生活を楽にするためのポインタに過ぎません。エイリアスと考えれば、数字の山(IPv4)や数字と文字の山(IPv6)を覚える必要はありません
That’s it!
しかし、あなたが訪れたそのページで説明されているように、起こったことは、世界中のすべてのシステムのローカルな「127.0.0.1」アドレスに対する「ハッキング」ではなく、むしろその特定のシステム自体に欠陥があったのです
しかし、これをさらに明確にするために、あなたが言ったときに、あなたが言ったような言い方をすると、これは私を悩ませました
サーバーサイドリクエストフォージェリに関する記事を読んでいました。その記事の中で、攻撃者は127.0.0.1がインターネットに公開されていることを発見しました
私もその記事を読んだのですが、こうなりました。誰かが、任意のIPアドレス/ホスト名にそのツールを向けることができるオンラインツールを使っていました。彼らがそのツールを127.0.0.1
に向けたとき、IPアドレス127.0.0.1
がインターネットに公開されているわけではありませんでした。むしろ、このツール自体に欠陥があり、127.0.0.1
を使ってツールが動作している内部サーバを誰でも探れるようになっていたのです。そして、このツールは、オープン・ポートなどを検出するために明示的に使用されるハッキング・ツールだったので、127.0.0.1
を使用することで、特定のアプリケーションは、自分自身のローカル・ホスト・ネットワークを探り、その情報を、Webブラウザ経由でツールにアクセスしている人に伝えることができました
提示されたリスクは、すべての127.0.0.1
がインターネットにさらされていたということではなく、1つのサイトの1つのツール上でのずさんなコーディングがこれを許していたということです
16 Giacomo1968 2017-12-29
localtest.meの何がそんなに特別なの?
127.0.0.0.1 (localhost) を指しています。このアドレスは常にローカルコンピュータ用に予約されています
他にもあるのか?(そして、どうやって見つけるのか?)
そうなんですよ。Googleとスーパーユーザーは、あなたのお友達です(わかったと思いますが)
ローカルの[IP]に外部ドメインを登録する方法がまだよくわかりません。
tracert localtest.me
がマシンから出ることすらないので混乱します。これは低レベルではどのように処理されているのでしょうか?
最初の(外部の)DNSリクエストを見逃しています。tracert
はパケットのパスを表示していますが、パケットがどこにでも行けるようになる前に、コンピュータは送信先のIPを知っていなければなりません。注意点として、もしあなたが以前に locatest.me を訪問したことがない場合、DNS リクエストは外部リゾルバに行われ、127.0.0.0.1 にマップされていることを発見します。返されたデータは、その後、ローカルで使用されます(tracert
やウェブコンテンツの表示など)。そして、DNSは任意のホスト名を任意のIPにマッピングすることができることを覚えておいてください – IPがローカルかどうかを「知る」わけではありません
8 Anaksunaman 2017-12-29