Ist 127.0.0.1 die einzige Loopback-Adresse?
Kurzantwort
Nein. Der ganze Bereich 127.0.0.0/8 ist für Loopback reserviert, also lösen 127.0.0.2, 127.1.1.1 und so weiter alle zum lokalen Host auf. Das ist wichtig für SSRF und das Umgehen von Allow-Lists — ein Angreifer kann 127.0.0.2 oder andere Kodierungen nutzen, um eine naive Prüfung „127.0.0.1 blockieren“ zu umgehen — und für das Binden mehrerer lokaler Dienste. (In IPv6 ist Loopback die einzelne Adresse ::1.)
Fast jeder tippt 127.0.0.1 so oft, dass man annimmt, es sei die einzige Loopback-Adresse. Das ist es nicht, und genau diese Annahme ist die Art von Lücke, die einen schwachen SSRF-Filter in eine echte Schwachstelle verwandelt.
Der ganze /8 ist Loopback
RFC 1122 reserviert den gesamten Block 127.0.0.0/8 — jede Adresse von 127.0.0.1 bis 127.255.255.254 — für Loopback. Also senden 127.0.0.2, 127.1.1.1 und 127.42.42.42 allesamt den Traffic direkt an den lokalen Host zurück, ohne je die Leitung zu berühren. Der Kernel routet 127.x niemals aus der Maschine hinaus. Das sind etwa 16 Millionen Loopback-Adressen, nicht eine.
Warum es einen Pentester interessiert
Das ist ein Klassiker der Arbeit an SSRF und dem Umgehen von Allow-Lists. Eine naive Verteidigung, die nur die wörtliche Zeichenkette 127.0.0.1 (oder localhost) blockiert, ist trivial zu umgehen: Ein Angreifer erreicht dieselben lokalen Dienste über 127.0.0.2 oder über alternative Kodierungen von 127.0.0.1 — die Dezimalform 2130706433, das Oktal 0177.0.0.1, das Hex 0x7f.0.0.1, die nullaufgefüllte Form oder sogar DNS-Namen, die auf eine 127.x-Adresse auflösen. Die richtige Gegenmaßnahme löst den Host auf und prüft, ob die aufgelöste IP in reservierte Bereiche fällt, statt eines String-Vergleichs.
Auch praktische Verwendungen
Der weite Bereich ist tatsächlich nützlich: Sie können viele lokale Dienste an verschiedene Loopback-Adressen binden (z. B. 127.0.0.2:80 und 127.0.0.3:80), um Port-Kollisionen während der Entwicklung zu vermeiden.
Der IPv6-Kontrast
IPv6 ist strenger: Loopback ist die einzelne Adresse ::1 (das /128 ::1/128), ohne Entsprechung des riesigen 127/8-Blocks. Dies zu erwähnen zeigt Breite.
Warum die Distraktoren verlocken
„Jede andere 127.x ist öffentlich“ und „der Rest ist Multicast“ wiederholen beide den Mythos der einzelnen Adresse mit erfundenem Detail. „Loopback ist eigentlich 0.0.0.0“ verwechselt die nicht spezifizierte / „alle Schnittstellen“-Adresse mit Loopback.
Worauf Interviewer achten
Ein klares „nein — ganz 127.0.0.0/8“ und idealerweise die Sicherheitspointe: Niemals ein einzelnes Loopback-Literal blocklisten; stattdessen auflösen und den Bereich prüfen.
Wahrscheinliche Anschlussfragen
- Zeigen Sie mir drei Schreibweisen von „127.0.0.1“, die eine naive String-Blockliste austricksen.
- Warum reicht das Blockieren nur von „127.0.0.1“ nicht, um SSRF auf localhost zu stoppen?
- Was ist das IPv6-Loopback, und wie verhält sich seine Größe zu 127.0.0.0/8?