SSRF Zafiyeti / Lab

lyxG

Anka Team Junior
15 Ocak 2019
303
1
71
Merhaba, bu konuda SSRF nedir nasıl sömürülür ve örnek lablar ile açıklamaya çalışacağım. Zafiyet bir web uygulamasının içeride kendi sistemlerini check ederken,veya veri alırken bu durumu manipüle edip farklı kaynaklara istek gönderme hatta servis içindeki dosya kaynaklarını okumanızı sağlayabilir.
Portswigger üzerinden ilk örneğimizi çözelim. (wiener:peter)

İLK LABARATUAR

z.png


Gördüğünüz gibi stock check üzerinde direkt olarak bir url belirli buradan veriyi toplayıp içeride kaç tane olduğunu gösteriyor. Biz ise bu durumu manipüle edip sistem içindeki /admin/ pathine gireceğiz. Pekala bu durumu lokalde deneyeceğiz http://localhost/admin

G6Si


Artık herhangi bir auth. vermeden sistem üzerinde admin paneline erişebiliyoruz. Sistemin bizden istediği şey admin paneline girip carlos adlı müşteriyi silmek. Bunun için /admin/delete?username=carlos diyerek testi tamamlıyoruz. 302 found verdikten sonra tekrar /admin e gidip kontrol edebilirsiniz.


AgsZ


İKİNCİ LABARATUAR

Bu örnekte bizden ssrf açığı yardımı ile hedef server'a ait ip range kısmını bulmamız vu bu bulduğumuz ip adreslerinden admin klasörüne gidip carlosu silmemizi istiyor. Önce lab ı aktif hale getiriyorum ve yine stock check kısmına girişiyorum.

Jnyn


İlk örnekteki gibi direk localhost diye girişirsek muhtemelen bizi patlatacak, bunun için 192.168.0.1/24 lük bir test yapmamız lazım, inturder üzerinden 200 veya 401 mesajları bizim önemli, illa ki 200 mesajı dönmesi gerekmez şuan için sadece ip nin var olup olmadığını bulmamız gerkiyor. İnturder > Payloads > Numbers > From: 1 - To: 254 - Step: 1
Wd1B



Gördüğünüz gibi 192.168.0.163 açık adres olarak karşımıza çıktı, http response değerlerini iyi okumalı ve ona göre testlerimizi yapmalıyız. Şimdi az önceki işlemin aynısını verek carlos adlı kullanıcıyı sileceğiz. /admin/delete?username=carlos yazarak kişinin hesabını siliyoruz.


Aeo5


ÜÇÜNCÜ LABARATUAR

Bu labaratuar örneğinde ilk yaptığımız ile aynı işlemi yapacağız ama sizde göreceksiniz ki bizden bypass işlemi gerektirecek bir parametre gerekiyor. Bu durumu belki localhost kısaltmaları ile kırabilirsiniz örneğin ; iken http://0.0.0.0 http://127.127.127.127 gibi örnekler ile karşımıza çıkabilir.


glAU


Buraya kadar anladık, bizden herhangi bir path kısıtlaması v.s vermemiş eğer ki durum böyle olsaydı url encoding ve php bypass konuları girebilirdi örnek olarak %2fadmin veya http://dreambully.com@http//127:80/admin verebiliriz. Şimdi ip adresini bypass etmemiz gerek.

1p1q


Buraya kadar herşey tamam da /admin yazdığımda yine beni waff karşılıyordu, bu sefer yeni lokal host parametreleri aradım ama nafile, bunun yerine olayın /admin/ pathi olduğunu anladım. Bunun için ilk sefer url encode etsem de işe yaramadı. Bende bunun yerine double encodeing denedim ve sonuç....

hD18


Bu tür ssrf saldırıları ile beraber sistemde çalışan ip aralıklarını öğrenip atif olan servislerinden dosya okuyup işlemler yapabilir, hatta işi blind tabanına taşıyıp komut çalıştırabiliriz. Cloud servisleri kullanıyorsa api keyleri security cred. larını öğrenebilirsiniz bu denli kritik bir açıktır. Beni okuduğun için teşekkür ederim.
 
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.