403 & 401 Bypasses
Reading time: 5 minutes
tip
Učite i vežbajte AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Učite i vežbajte GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Podržite HackTricks
- Proverite planove pretplate!
- Pridružite se 💬 Discord grupi ili telegram grupi ili pratite nas na Twitteru 🐦 @hacktricks_live.
- Podelite hakerske trikove slanjem PR-ova na HackTricks i HackTricks Cloud github repozitorijume.
HTTP Verbs/Methods Fuzzing
Pokušajte koristiti različite glagole za pristup datoteci: GET, HEAD, POST, PUT, DELETE, CONNECT, OPTIONS, TRACE, PATCH, INVENTED, HACK
- Proverite zaglavlja odgovora, možda se može dobiti neka informacija. Na primer, 200 odgovor na HEAD sa
Content-Length: 55
znači da HEAD glagol može pristupiti informacijama. Ali još uvek morate pronaći način da exfiltrirate te informacije. - Korišćenje HTTP zaglavlja kao što je
X-HTTP-Method-Override: PUT
može prepisati korišćeni glagol. - Koristite
TRACE
glagol i ako imate sreće, možda u odgovoru možete videti i zaglavlja koja su dodali međuproksiji koja bi mogla biti korisna.
HTTP Headers Fuzzing
-
Promenite Host zaglavlje na neku proizvoljnu vrednost (to je ovde uspelo)
-
Pokušajte koristiti druge User Agents za pristup resursu.
-
Fuzz HTTP zaglavlja: Pokušajte koristiti HTTP Proxy zaglavlja, HTTP autentifikaciju Basic i NTLM brute-force (samo sa nekoliko kombinacija) i druge tehnike. Za sve ovo sam napravio alat 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
Ako je putanja zaštićena, možete pokušati da zaobiđete zaštitu putanje koristeći ova druga zaglavlja:
-
X-Original-URL: /admin/console
-
X-Rewrite-URL: /admin/console
-
Ako je stranica iza proksija, možda je proksi taj koji vam sprečava pristup privatnim informacijama. Pokušajte zloupotrebiti HTTP Request Smuggling ili hop-by-hop zaglavlja.
-
Fuzz posebna HTTP zaglavlja tražeći različite odgovore.
-
Fuzz posebna HTTP zaglavlja dok fuzzujete HTTP metode.
-
Uklonite Host zaglavlje i možda ćete moći da zaobiđete zaštitu.
Path Fuzzing
Ako je /path blokiran:
- Pokušajte koristiti /%2e/path _(ako je pristup blokiran od strane proksija, ovo bi moglo zaobići zaštitu). Pokušajte takođe_** /%252e**/path (dupla URL enkodiranje)
- Pokušajte Unicode bypass: /%ef%bc%8fpath (URL enkodirani karakteri su poput "/") tako da kada se ponovo enkodira biće //path i možda ste već zaobišli proveru imena /path
- Drugi zaobilaženja putanje:
- 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)
- Koristite ovu listu u sledećim situacijama:
- /FUZZsecret
- /FUZZ/secret
- /secretFUZZ
- Druga API zaobilaženja:
- /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)
Parameter Manipulation
- Promenite vrednost parametra: Iz
id=123
-->id=124
- Dodajte dodatne parametre u URL:
?
id=124
—->id=124&isAdmin=true
- Uklonite parametre
- Promenite redosled parametara
- Koristite posebne karaktere.
- Izvršite testiranje granica u parametrima — pružite vrednosti poput -234 ili 0 ili 99999999 (samo neki primeri).
Protocol version
Ako koristite HTTP/1.1 pokušajte koristiti 1.0 ili čak testirajte da li podržava 2.0.
Other Bypasses
- Dobijte IP ili CNAME domena i pokušajte kontaktirati ga direktno.
- Pokušajte da opterećujete server slanjem uobičajenih GET zahteva (to je uspelo ovom momku sa Facebookom).
- Promenite protokol: sa http na https, ili za https na http
- Idite na https://archive.org/web/ i proverite da li je u prošlosti ta datoteka bila globalno dostupna.
Brute Force
- Pogodite lozinku: Testirajte sledeće uobičajene akreditive. Da li znate nešto o žrtvi? Ili ime CTF izazova?
- Brute force: Pokušajte osnovnu, digest i NTLM autentifikaciju.
admin admin
admin password
admin 1234
admin admin1234
admin 123456
root toor
test test
guest guest
Automatski alati
- https://github.com/lobuhi/byp4xx
- https://github.com/iamj0ker/bypass-403
- https://github.com/gotr00t0day/forbiddenpass
- Burp Extension - 403 Bypasser
- Forbidden Buster
- NoMoreForbidden
tip
Učite i vežbajte AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Učite i vežbajte GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Podržite HackTricks
- Proverite planove pretplate!
- Pridružite se 💬 Discord grupi ili telegram grupi ili pratite nas na Twitteru 🐦 @hacktricks_live.
- Podelite hakerske trikove slanjem PR-ova na HackTricks i HackTricks Cloud github repozitorijume.