Keşif Süreci: Duvara Toslamak
Yakın zamanda gerçekleştirdiğim bir Blackbox testinde, elimde hiçbir kullanıcı hesabı veya giriş yetkisi yoktu. Standart login bypass denemeleri, SQL Injection saldırıları ve genel "wordlist" taramaları hiçbir sonuç vermedi. Pes etmek üzereyken, her uygulamanın "yumuşak karnı" olan "Şifremi Unuttum" sayfasına odaklandım.
Birinci Aşama: Yan Kanal (Side-Channel) Analizi ve Regex Injection
Sistem bizden bir e-posta adresi istiyordu. Burp Suite ile gelen cevapları (response) incelerken garip bir şey fark ettim: Sistem, girdiğim karakterlere göre farklı HTTP hata kodları döndürüyordu.
Denemelerim sonucunda sistemin arka planda Regex (Regular Expression) sorgularına izin verdiğini keşfettim! Mantık şuydu:
- Regex Sorgusu:
^a.*(A ile başlayan bir kullanıcı var mı?) - Doğru Tahmin (Kullanıcı Var):
404 User Not Found(Kullanıcı var ama şifre sıfırlama aşamasına geçilemedi gibi bir hata). - Yanlış Tahmin (Kullanıcı Yok):
502 Gateway Errorveya farklı bir hata.


Bu hata kodu farkını kullanarak, harf harf bir kullanıcı adını "brute-force" değil, "regex-force" yöntemiyle çıkardım. Sonuç: sahnureren... ile başlayan bir hesap olduğunu buldum.

İkinci Aşama: Domain Tahmini
Kullanıcı adını bulmuştum ama mailin devamı neydi? @gmail.com mu, yoksa kurumsal bir adres mi? Aynı Regex yöntemini @ işaretinden sonrası için de uyguladım. Uzun uğraşlar sonunda hedefin özel bir şirket maili olduğunu (sahnuraloglu@sirket.com) tamamen deşifre ettim.
Üçüncü Aşama: "Knock-out" Hamlesi (Email Array Injection)
Maili bulmak yetmiyordu, o maile erişimim yoktu. Burada sistemin e-posta gönderim mantığını sorguladım. İstekteki e-posta parametresini bir Array (Dizi) haline getirdim:
{
"email": [
"sahnuraloglu@sirket.com",
"erenfake@gmail.com"
]
}
Sistem, birinci maili (kurban) doğrulama için kullanırken, şifre sıfırlama bağlantısını içeren maili dizideki ikinci adrese (saldırgan) gönderdi! Sonuç: Kurbanın hesabına tam erişim.
Sonuç ve Dersler
Bu vaka bize iki şeyi gösteriyor:
- Girdi Denetimi (Input Validation): Sadece "payload" aramayın, sistemin girdiyi nasıl işlediğini (Regex vb.) anlamaya çalışın.
- Gözlem Her Şeydir: 404 ile 502 arasındaki o küçük fark, tüm sistemin anahtarını size verebilir.
Bir pentester, yazılımın nasıl inşa edildiğini bilirse, onu nasıl yıkacağını da bilir. Okuduğunuz için teşekkürler