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
- Sprawdź plany subskrypcyjne!
- Dołącz do 💬 grupy Discord lub grupy telegram lub śledź nas na Twitterze 🐦 @hacktricks_live.
- Dziel się trikami hackingowymi, przesyłając PR-y do HackTricks i HackTricks Cloud repozytoriów github.
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.
admin admin
admin password
admin 1234
admin admin1234
admin 123456
root toor
test test
guest guest
Narzędzia automatyczne
- https://github.com/lobuhi/byp4xx
- https://github.com/iamj0ker/bypass-403
- https://github.com/gotr00t0day/forbiddenpass
- Burp Extension - 403 Bypasser
- Forbidden Buster
- NoMoreForbidden
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
- Sprawdź plany subskrypcyjne!
- Dołącz do 💬 grupy Discord lub grupy telegram lub śledź nas na Twitterze 🐦 @hacktricks_live.
- Dziel się trikami hackingowymi, przesyłając PR-y do HackTricks i HackTricks Cloud repozytoriów github.