Bir süredir büyük bir enerji şirketi üzerinde araştırma yapıyorum. Bu süreçte birçok farklı subdomain birçok farklı url tespit ettim. Fakat kayda değer bir şeyler bulmak amacındaydım. Geniş çaplı arama yaptıktan sonra gözüme çarpan noktalara öncelik verdim. Bunlardan ilki bir giriş portalıydı.

Bu tarz girişleri incelemeye başlarken js dosyalarını kurcalıyorum. Bu sayede bazen giriş yapmadan farklı uç noktalar tespit edilebiliyor. Js dosyalarını kurcaladıktan sonra birçok uç nokta buldum fakat hiçbirine erişim izni vermiyordu çünkü erişim için login olmamı istiyordu. Fakat bir kod satırı sürekli gözüme çarpıyordu.

Bu kod: 1. POST /login isteği atar. 2. Başarılı olursa: Token ve kullanıcı ID'sini localStorage'a kaydeder. 3. header'a "Bearer token" ekler. Kullanıcıyı "/dashboard" sayfasına yönlendirir.
Demekki sistem iletişimin bir kısmını XXX_TOKEN VE XXX_Id üzerinden sağlıyor. Aklıma şu geldi, biz bu değerleri sunucudan gelen bilgilerle değil kendimiz eklersek sistem nasıl yanıt verir? Hemen bunu denemek için tarayıcı açtım ve konsoluna şu komutları girdim:

daha sonra /dasboard sayfasına girince hiç beklemediğim bir anda portal arayüzü açıldı.

Aslında bunu ilk başta anlamadım. Olabileceğine olanak vermiyordum. 1–2 saniye duraksadım çünkü sistem basit bir şekilde localStorage kontrolü yapıyor ve dashboard arayüzü gösteriliyordu.
Ama sorun daha bitmedi çünkü her ne kadar arayüz görebilmiş olsakta verilerin hiçbiri gösterilmiyordu. Arka planda bu veriler alınırken 401 hatası dönüyordu. Arayüzdeki bilgilere erişemiyoruz fakat hangi uç noktaların aktif olduğunu gözlemleyebiliyoruz. Bu büyük bir artı.
Daha sonra önceden bulduğum uç noktaları tek tek denemeye başladım. Tarayıcıda rastgele girdiğim localStorage token olduğu için ait olan sayfayı görebiliyordum ama kullanılmıyordu. Örnek olarak

Profilime tıkladığımda arayüz vardı ama hiçbir bilgi gözükmüyor ayrıca linkler çalışmıyordu. daha sonra yetki gerektirmeyen uç noktalar aramaya başladım ve sonunda bazı arayüzler buldum. Bunlar:
/planned-xxxxxx-logs
/xxxxxx-logs
Anlamanız açısından örnek olarak, sms report bilgilerini almak için şu arayüze sahipti:

Seçtiğin tarih alanını girince o tarihler arasındaki bilgileri xlsx formatında indirebiliyordunuz. İlk başta çalışacağına inanmadım ve tarih aralığı seçip indirdim. Bir anda bir dosya indi ve açtığımda kullanıcıların bilgilerini içeren raporlar bulunuyordu. Bu farklı uç noktadan elde edilenler şunlar
- Şirket içi e posta bildirimleri
- Şirket içi kullanılan numaralar ve aranan numaralar
- Elektrik kesintisi kayıtları ve özel veriler
Hackerone triyaj ekibi bu bilgilerin önemli olduğu gerekçesiyle raporun önemini kritik olarak yükselttiler.

Benim açımdan güzel bir tecrübe oldu. Bazen kısıtlı imkanlar büyük sonuçlar doğurabilmekteydi. Aslında sistem güvenliği dediğimiz şeyde bu değil mi zaten? Birilerinin hataları birilerinin yolu oluyor.
Okuduğunuz için teşekkürler.