403 & 401 Bypassy

Reading time: 5 minutes

tip

Ucz się i ćwicz AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Ucz się i ćwicz GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Wsparcie HackTricks

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 pojawią się jakieś informacje. 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 metody TRACE i jeśli będziesz miał 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 jakąś dowolną wartość (to zadziałało tutaj)

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

  • Fuzzing nagłówków HTTP: Spróbuj użyć nagłówków HTTP Proxy, podstawowej autoryzacji 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ć dostęp do prywatnych informacji. Spróbuj wykorzystać HTTP Request Smuggling lub nagłówki hop-by-hop.

  • Fuzz specjalne nagłówki HTTP, szukając różnych odpowiedzi.

  • Fuzzing specjalnych nagłówków 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żek:
  • 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>"} (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 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 (Zadziałało to 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 podstawowej, digest i autoryzacji NTLM.
Common creds
admin    admin
admin    password
admin    1234
admin    admin1234
admin    123456
root     toor
test     test
guest    guest

Narzędzia automatyczne

tip

Ucz się i ćwicz AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Ucz się i ćwicz GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Wsparcie HackTricks