OWASP TOP 10 | Capital One SSRF
SSRF(Server Side Request Forgery) açığı adından da anlaşılacağı üzere “Server Side Request Forgery” sunucu tabanlı istek sahteciliği anlamına geliyor.
Nasıl gerçekleştiğini basitçe açıklarsak; Saldırgan hedef sunucuya istek göndermek için araya başka bir sunucuyu dahil ederek hedefe istek gönderir.
Saldırgandan değil başkabir sunucudan gelen istekler hedef sunucuda yorumlanır.Bunun pratikte nasıl işlediğini application.security üzerinden inceyelim.
CapitalTen isimli banka hesabına bob@livemail.com ve erratic321 şifresiyle giriş yapan saldırgan
Giriş yaptıktan sonra websitesi üzerinde inceleme yapmaya başlayan saldırgan “MoreAccount Services” sekmesini inceleme başlar
“Change Card Image” diyerek kredi kartının tasarımını özelleştirme ekranını açar.
“mountain.png” adlı şablonu yüklerek ilerler.
göründüğü üzere yüklenen şablon kart üzerine aktarılmış ancak burda dikkat çeken şey URL çubuğunda https://www.capitalten.com/myaccount/personalize
/cardimage/preview?url=https://s3.eu-central-1.amazonaws.com/file-upload/6b7c1a1e-1a56-4db8-980a-5a4b849e1581_n.jpg
yeşil ile belirttiğim resim adresinin uzak bir sunucudan çağırıldığı gözüküyor.
başka bir URL çağırılır.
gördüğünüz gibi çağrılan diğer resim kart üzerinde görülüyor. SSRF bulduğumuz anlaşılıyor.
SSRF’i sömürmeden önce kart tasarım uygulamasının backend kodlarına bir bakalım.
Java Spring Boot ile yazılmış backend kodlarını incelerken altlarını çizdiğim satırları inceleyin.
gördüğünüz gibi oluşturulan nesnede httpget isteğiyle URL alınıyor. Herhangi bi önlem yok.
Açığı nasıl istismar edeceğimize bakalım
URL üzerinden AWS Meta data urlsi göndererek veri çekmeye çalışıyor.
(AWS Servislerini bilmeyenler internetten araştırabilir.)
evet gördüğünüz gibi bize veri döndürebiliyor şimdi farklı veriler döndürelim
gördüğünüz gibi URL üzerinden istediğimiz isteği gönderiyoruz.
Gönderdiğimiz istek bize ISRM-WAF-ROLE çıktısını gösterdi.
Bu konu hakkında daha detaylı bilgi
için ziyaret edin https://docs.aws.amazon.com/waf/latest/developerguide/access-control-identity-based.html
Görüldüğü üzere AWS IAM token bilgilerini dönderdi. API(Application Programming Interface) kullanarak bilgileri işleyebileceğiz.
Saldırgan local terminalinde AWS için gerekli tokenleri yapılandırdıktan sonra
aws s3 ls sorgusu ile CapitalTen sunucusundaki S3 klasörlerini listeler.
SSRF ile ISRM-WAF-ROLE bilgilerini çaldık.Bu konuda AWS hakkında daha fazla fikir sahibi olmak isteyenler bulut bilişim sistemleri hakkında araştırma yapabilir.