Zapis: obejście uwierzytelniania poprzez ujawnienie informacji w PortSwigger Academy

Ten artykuł dotyczący obejścia uwierzytelniania w laboratorium przez ujawnienie informacji jest częścią mojej serii instruktażowej dla Akademii zabezpieczeń internetowych firmy PortSwigger .
Ścieżka szkolenia : Tematy po stronie serwera → Ujawnianie informacji
Skrypt Pythona: script.py
Opis laboratorium

Kroki
Analiza
Aplikacja lab to strona sklepu z bardzo ciekawymi produktami. Jak zwykle pierwszym krokiem jest sprawdzenie strony internetowej.
Po przejrzeniu trochę i zalogowaniu się przy użyciu znanych poświadczeń, nie pojawia się nic zbyt interesującego. Czas sprawdzić żądania w Burp. Tam też nie ma nic ciekawego.
Punkt końcowy administratora w niektórych poprzednich laboratoriach został znaleziony w obszarze /admin
. Aby jednak uniknąć korzystania z tej wiedzy, mogę korzystać z wielu sposobów odkrywania treści. Burp Professional ma taką funkcjonalność, a kilka dobrych darmowych narzędzi pozwala również na odkrywanie treści.
Ten, którego tutaj używam, to ffuf wraz ze świetnymi listami słów dostarczonymi przez SecLists :

Odwiedzanie punktu końcowego
Odwiedzam tę stronę, aby otrzymać tę wiadomość:

Nie podano więcej informacji.
Powszechnym sposobem propagowania źródłowych adresów IP do serwera WWW (używanego w scenariuszach proxy lub równoważenia obciążenia) jest X-Forwarded-For
nagłówek. To jednak nie działa tutaj (a opis laboratorium mówi, że i tak jest to niestandardowy nagłówek).
Do uzyskania dodatkowych informacji można użyć dwóch czasowników HTTP, OPTIONS
a TRACE
. Ten ostatni daje ciekawy wynik:

Podaj niestandardowy nagłówek
Teraz, gdy znam nagłówek, dostęp do interfejsu administratora staje się łatwy. Muszę upewnić się, że niestandardowy nagłówek jest wysyłany z każdym żądaniem, więc dodaję Match and Replace
regułę, aby zawsze dodawać ten nowy nagłówek do żądań.
Używam 127.0.0.1
jako treści, aby oszukać aplikację, aby uwierzyła, że żądanie pochodzi z localhost
.

Teraz wystarczy ponownie załadować stronę w przeglądarce, wejść do panelu administracyjnego i usunąć użytkownika carlos
, aby rozwiązać laboratorium:

Pierwotnie opublikowany na https://github.com .
New to Medium? Become a Medium member to access all stories on the platform and support me at no extra cost for you!