Herkese merhabalar arkadaşlar, ben Blwe. Bugün sizlere 2 ay önce pornmd.com web sitesinin /user/account uzantısında bulduğum csrf açığını göstermek ve analizini yapmak istiyorum. Hemde bug bounty'e yeni başlayacak arkadaşlar için, csrf açığının mantığını anlamaları için yapıyorum bu konuyu.
NOT: Bu açık hiçbir risk taşımadığı için hackerone tarafından, tarafıma bounty verilmedi.
Peki Neden ?:
pornmd sitesinde csrf açığı ile hesap silme'yi bulmuştum. Lakin hesap silme pornmd'de aktif olmadığından işe yaramıyor. Bu yüzden hiçbir risk taşımıyor.
Öncelikle dostlar, csrf açığını tanıyalım:
Siteler arası istek sahteciliği (CSRF) bir saldırganın kullanıcıları gerçekleştirmeyi düşünmedikleri eylemleri gerçekleştirmeye teşvik etmesine olanak tanıyan bir web güvenlik açığıdır. Bir saldırganın, farklı web sitelerinin birbirine müdahale etmesini önlemek için tasarlanmış aynı kaynak politikasını kısmen atlatmasına olanak tanır.
Ben bu csrf açığını nasıl buldum ?
Bazı csrf açıkları sadece Burp Suite ile bulunurken, bazılarıda sadece html kodları ile bulunur.
Ben bu csrf açığını html form kodları ile buldum.
Sadece Burp Suite ile bulunan csrf açıkları genellikle token ağırlıklı olurlar.
Ama şunu'da unutmamak gerekir, html kodları ile bulunan csrf açığı, burp suit'de de bulunabilir.
Peki html form kodlarını nereden buldum ?
Ben pornmd.com sitesine giriş yapıp https:// pornmd.com /user/settings kısmına geldim:
Evet, bu kısımdan sonra "Account" kısmına geliyorum:
Gördüğünüz gibi hesap silme kısmı geldi karşıma. Şimdi burada ben "Delete Your Account" butonuna sağ tıklıyorum ve "incele"
Diyorum:
İncele kısmına geldim. Burada "ctrl+f" yaparak "form" kodlarını arayacağım. İşime yarayacak form'u bulmam gerekiyor. İşime yarayacak form'u nasıl bulurum diyorsanız, form kodlarını bir bir analize edin, hangisi sizin butonunuzu işaret ediyorsa. O form kodu sizin aradığınızdır.
Evet, ben bana gereken form kodunu buldum. Şimdi form kodumun üstüne sağ tıklıyorum ve "HTML Olarak düzenle"ye basıyorum:
Benim form kodlarım bunlar. Ben bu form kodlarını alıp .html uzantılı dosyamın içine aktarıyorum:
Evet, form kodlarımızı yapıştırdık şimdi değişikliklerimizi kaydedip .html uzantılı dosyamızı açalım.
Gördüğünüz gibi arkadaşlar, böyle bir kısım geldi karşımıza, ben bu kısıma ne yazarsam yazayım "Confirm Deletion" butonu asla aktif olmayacak.
O yüzden bir kaç değişiklik yapacağım ve aktif hale getireceğim.
Evet, değişikliklerimi yaptım. Ne tür değişiklikler yaptım ?
1. Satırda ki method="post" un arkasına action="https:// www.pornmd.com /user/account" ekledim Nedeni ise: formun gönder butonuna basıldığında formdaki verilerin hangi sayfaya gideceğini belirtmek istedim.
2.Satırda ki autocomplete="off" kısmında'ki "off" kısmı yerine "on" kısmını getirdim. Nedeni ise: Otomatik tanımlama getirmesini istediğimdendi.
3. Satırda herhangi bir değişiklik yapmadım.
4.Satırda'da herhangi bir değişiklik yapmadım.
5. Satırda'ki disabled="" kısmını enabled="" olarak değiştirdim. Nedeni ise aktif olmaz ise, istek gönderemeyeceğimizdendi.
7 ve 6 satırda herhangi bir değişiklik yapmadım. Çünkü değişiklik gerekmiyordu daha fazla.
Şimdi son aşamaya geldi sıra. Bakalım csrf açığımız işe yarıyor mu ?
Bu kısmı video ile göstereceğim dostlar. Daha iyi anlamanız için:
Evet dostlar, gördüğünüz gibi csrf açığı böyleydi. Hesap silinmiyor. O yüzden herhangi bir risk taşımıyor.
Böyle konular çekmeyi düşünüyorum eğitim amaçlı. Devamı gelicek. İyi forumlar dilerim.