mirror of
https://github.com/HackTricks-wiki/hacktricks.git
synced 2025-10-10 18:36:50 +00:00
119 lines
5.9 KiB
Markdown
119 lines
5.9 KiB
Markdown
# 403 & 401 Bypassy
|
||
|
||
{{#include ../../banners/hacktricks-training.md}}
|
||
|
||
## 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 wyeksfiltrowanie 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 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](https://medium.com/@sechunter/exploiting-admin-panel-like-a-boss-fc2dd2499d31))
|
||
- Spróbuj [**użyć innych User Agents**](https://github.com/danielmiessler/SecLists/blob/master/Fuzzing/User-Agents/UserAgents.fuzz.txt) 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**](https://github.com/carlospolop/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 właśnie proxy uniemożliwia ci dostęp do prywatnych informacji. Spróbuj wykorzystać [**HTTP Request Smuggling**](../../pentesting-web/http-request-smuggling/) **lub** [**nagłówki hop-by-hop**](../../pentesting-web/abusing-hop-by-hop-headers.md)**.**
|
||
- Fuzz [**specjalne nagłówki HTTP**](special-http-headers.md), szukając różnych odpowiedzi.
|
||
- **Fuzzing specjalnych nagłówków HTTP** podczas fuzzingu **metod HTTP**.
|
||
- **Usuń nagłówek Host** i być może będziesz w stanie obejść ochronę.
|
||
|
||
## **Fuzzing ścieżek**
|
||
|
||
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%8f**path_ (zakodowane znaki URL są jak "/"), więc po ponownym zakodowaniu będzie to _//path_ i być może już obejdziesz 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**](https://github.com/danielmiessler/SecLists/blob/master/Fuzzing/Unicode.txt) 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](https://medium.com/@amineaboud/story-of-a-weird-vulnerability-i-found-on-facebook-fc0875eb5125)).
|
||
- **Zmień protokół**: z http na https, lub z https na http
|
||
- Przejdź do [**https://archive.org/web/**](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 o nazwie wyzwania CTF?
|
||
- [**Brute force**](../../generic-hacking/brute-force.md#http-brute)**:** Spróbuj podstawowej, digest i NTLM auth.
|
||
```:Common creds
|
||
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/lobuhi/byp4xx)
|
||
- [https://github.com/iamj0ker/bypass-403](https://github.com/iamj0ker/bypass-403)
|
||
- [https://github.com/gotr00t0day/forbiddenpass](https://github.com/gotr00t0day/forbiddenpass)
|
||
- [Burp Extension - 403 Bypasser](https://portswigger.net/bappstore/444407b96d9c4de0adb7aed89e826122)
|
||
- [Forbidden Buster](https://github.com/Sn1r/Forbidden-Buster)
|
||
- [NoMoreForbidden](https://github.com/akinerk/NoMoreForbidden)
|
||
|
||
|
||
{{#include ../../banners/hacktricks-training.md}}
|