Hesap Devri - Kiracının İçinde

Dec 03 2022
Özet : Hesap Devralma (ATO), saldırgan bir kedinin başka bir kişinin hesabını ele geçirdiği bir saldırıdır. Bir hesap ele geçirme saldırısının birden fazla yolu vardır, yani kaba kuvvet kimlik bilgileri, kimlik bilgileri doldurma, yanıt manipülasyonu, parola sıfırlama zehirlenmesi, sosyal mühendislik ve kimlik avı, 2FA baypas saldırıları vb.

Özet :

Hesap Devralma (ATO), saldırgan bir kedinin başka bir kişinin hesabının sahipliğini aldığı bir saldırıdır. Bir hesap ele geçirme saldırısının birden fazla yolu vardır, yani kaba kuvvet kimlik bilgileri, kimlik bilgileri doldurma, yanıt manipülasyonu, parola sıfırlama zehirlenmesi, sosyal mühendislik ve kimlik avı, 2FA baypas saldırıları vb.

Tanım :

150 ABD Doları ile ödüllendirildiğim bug bounty platformlarından birinde özel bir programda bir güvenlik açığı buldum. Uygulamaya göz atarken, davet belirteci sızıntısına karşı savunmasız olan bir davet işlevi buldum. Benim (saldırgan) yönettiğim kayıtsız bir e-posta yoluyla kurbanın hesabını ele geçirmek için sızan davetiye jetonunun avantajını kullandım.

Kiracı nedir?

Basit bir ifadeyle kiracı, tek bir kuruluş veya şirketten bir kullanıcı grubu olarak tanımlanır. Kiracıda, diğer kullanıcıları kiracının oluşturulduğu şirket için çalışmaya davet edebilecek bir yönetici vardır. Bir kiracı BT departmanı, Muhasebe departmanı, Satış departmanı vb. olabilir.

Kiracı - Temel

Bu güvenlik açığını nasıl buldum?

  1. Hesaba giriş yaptım (yönetici kimlik bilgileri platform tarafından sağlandı) ve Kullanıcı davet et işlevine tıkladım
  2. Yönetici Hesabı
Davet İşlevselliği

3. Ardından burpsuite kullanarak isteği yakaladım ve isteğe sağ tıklayın > Do intercept > Response to this request

Burpsuite - İstek
Burpsuite - Yanıt
Bekleyen Davet

4. Davet jetonunun URL'sini oluşturdum ve jeton yanıtta zaten sızdırıldığı için tarayıcıda açtım, ardından Kabul Et'e tıkladım ve benden bir e-posta girmemi istedi.

Davet Jetonu URL'si (Kurban)
Davet E-postası (Kurbanın E-postası) İsteme

5. Ardından Temp Mail'e gittim ve kayıtsız e-postayı kopyalayıp web sitesine yapıştırdım ve düğmesine tıkladım ve ardından Onayla'ya tıkladım.

Geçici Posta
Kayıtlı olmayan e-postayı girdi (Saldırganın e-postası)
Onaylamak

6. Ardından kod, kayıtsız bir e-postaya (saldırganın e-postası) gönderildi.

Doğrulama kodu gönderildi
Doğrulama kodu

7. Kodu kullandım ve kurbana gönderilen davetiyeyi kabul ettim.

Doğrulama kodu
Hesap Devri
Davet Kabul Edildi

Neden oldu ?

Bence,

Web uygulamasında iki kusur vardı

  1. Kullanıcı davet edilirken yanıtta davet belirteci sızdırıldı
  2. Davet belirtecinde davet edilen kullanıcının doğrulaması yapılmadı

Herhangi bir yönetici, yönetici tarafından kiracıya davet edilen herhangi bir kullanıcının hesabını devralabilir.

Önem derecesi düşük ila orta olacaktır çünkü saldırı kiracının içindedir ve bunun dışında bir yöneticinin burada yapabileceği tek şey davet edilen kullanıcıyı taklit etmek ve eylemleri o kullanıcı adına gerçekleştirmektir ve bir yönetici mevcut kullanıcıyı taklit edemez. .

Hesaplanan CVSS

Vektör Dizisi - CVSS:3.0/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:L/A:N

Puan - 5.4 (Orta)

Saldırı Akışı

Azaltma

Burada iki hafifletme olacak

  1. Davet kodu, sunucudan gelen yanıtta gönderilmemelidir.
  2. Davet kodu ve davet edilen e-posta adresine göre bir kontrol yapılmalıdır.

// Sağlanan e-postanın davet koduyla eşleşip eşleşmediğini kontrol edin
if (email == davetKodu) {
// E-posta davet koduyla eşleşiyor
// Kimlik doğrulama işleminin geri kalanıyla devam edin
// …
} else {
// E-posta davetle eşleşmiyor code
// Bir hata mesajı döndürün veya doğru davet kodunu isteyin
// …
}