Hoşgeldin Sivil

.
Forum Yöneticisi: Administrator | Bu Bölümde Yetkili Tüm Yöneticiler? | Bu konuyu okuyanlar?

 Forum Ana Sayfa
   Web Güvenlik Açıkları

   
 Kurallar    Aktif Konular    PM    Kayıt Ol     Giriş Yap  
» Cross-site request forgery (CSRF) Nedir?
[ 1 ]   2
 
 Konu Kalitesi %10
Oy Ver   
 
Gönderilme Tarihi: 13 Mart 2022 12:09:11 - Kayıtlı IP
  Mesajı İhbar Et!     

onurhan1337

Teğmen

Ankara
13 Mart 2022
4 Mesaj




Aktiflik
Seviye
Deneyim



Türkçe anlamı “siteler arası istek sahteciliği” olan CSRF, kısaca kullanıcıya onun istekleri dışında işlemler yaptırmaktır. Bu zafiyeti gerçek hayattan örneklerle birleştirerek size aktarmaya çalışacağım.

CSRF, genel yapı olarak sitenin açığından faydalanarak siteye sanki o kullanıcıymış gibi erişerek işlem yapmasını sağlar. CSRF zafiyeti uygulamaya giden isteklerin hangi kaynaktan ve nasıl gönderildiği kontrol edilmeyen, genellikle de GET requestleri ve SESSION işlemlerinin doğru kontrol edilememesinden dolayı ortaya çıkan zafiyet türüdür. Bu zafiyetin oluşmasının nedeni kodlayan yazılımcıların gözünden kaçan ayrıntılarda saklıdır diyebiliriz. Ayrıyeten bu zafiyet “Session Riding” olarakta bilinmektedir.

Bu kadar tanımlamadan sonra gerçek hayattan örneklerle anlatıma devam etmek istiyorum böylece zihninizde daha iyi yer edineceğine eminim. Yazımın sonunda bu konuda size videolar önereceğim.

İlk örneğimiz hakkında kısaca bilgiler; ( Kaynak — Web Hacking 101 book)

Difficulty: Low
Url: https://app.shopify.com/services/partners/api_client/XXXX/export_installed_users
Report Link: https://hackerone.com/reports/96470
Bounty Paid: $500

Öncelikle yukarıdaki report link üzerinden kaynağa ulaşıp kendiniz de ayrıyeten inceleyebilirsiniz ben elimden geldiğince durumu aktaracağım. Yukarıdaki Url’de bir shopify API endpoint’i ile karşılaşıyoruz bize yüklü kullanıcıları export ediyor. Shopify buraya bir CSRF token validation koymadığı için bu bilgileri okuyabilmemize olanak sağlayacak bir zafiyete yol açıyor.

Bir HTML formu hazırlayıp onu xxx.com sitenize eklediğinizi farz edin. Ben aşağıdaki örnek üzerinden durumu aktaracağım.




csrf







Yukarıdaki kod kurbanın sadece siteyi ziyaret etmesinin yeterli olduğu, devamında kurbanın ( eğer varsa ) tarayıcısının cookie’sini shopifyden sağlamasıyla API’a bir GET methodu göndermesiyle tamamlanıyor. Eğer bu form ile kullanıcı cookiesinin nasıl alınıp onun adına request atıldığını tam kavrayamadıysanız cookie konusunu en aşağıda bıraktığım kanallardan dinleyebilir devamında tekrardan inceleyebilirsiniz. Ayrıca methodlarla alakalı bahsettiğimiz kısım da gözünüzden kaçmasın, yazılımcının endpointe CSRF validation eklememesinin başa açtığı sorunu görüyoruz.

Burada yukarıda bahsettiğim gibi kullanıcının izni ve haberi olmadan onun cookiesi ile request atılıp onun adına işlem dahi yapılabiliyor. Bunu engellemenin yolu elbette var bir örnek daha paylaşıp devamında ona değineceğim.

2. Shopify Twitter Disconnect

Difficulty: Low
Url: https://twitter-commerce.shopifyapps.com/auth/twitter/disconnect
Report Link: https://hackerone.com/reports/111216
Date Reported: January 17, 2016
Bounty Paid: $500

Shopify, mağaza sahiplerinin ürünleri hakkında tweet atmasına izin vermek için twitter ile entegrasyon sağlıyor. Haliyle mağaza hesabına bağlı twitter hesabının mağazadan bağlantısını kesmek için de bir seçenek bulunuyor.

Yukarıdaki URL’yi incelediğimizde shopify’in burada CSRF validation yapmadığını farkediyor ve bunun da csrf zafiyetine yol açabileceğini düşünüyoruz. Çünkü shopify burada gelen cookie’ye bakıyor ancak onun saldırgandan mı yoksa kurbanımızdan mı geldiğini bilmiyor. Saldırgan burada kurban adına GET isteği yapmasına izin vermeyecek hiçbir koruma yok. Ve tahmin edebileceğiniz üzere saldırgan burada başarılı bir şekilde kurbanın twitter bağlantısını kesebildi, hadi inceleyelim.

Ayrıca lütfen aşağıda güvenlik açığı bulunan URL’ye bir de img etiketinin kullanımına dikkat edin:


GET /auth/twitter/disconnect HTTP/1.1
Host: twitter-commerce.shopifyapps.com
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.11; rv:43.0) Gecko/2010010 1 Firefox/43.0
Accept: text/html, application/xhtml+xml, application/xml
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Referer: https://twitter-commerce.shopifyapps.com/account
Cookie: _twitter-commerce-session=REDACTED
>Connection: keep-alive

Tarayıcı, verilen URL’deki görüntüyü almak için bir GET isteği gerçekleştirdiğinden ve hiçbir CSRF belirteci doğrulanmadığından, kurbanın mağazasının bağlantısı kesiliyor. Bu isteği yapan html kod içeriğini inceleyelim:










Bir şey farkettiniz mi? Bir önceki saldırıda saldırgan body onload kullanmıştı ama bu sefer karşımıza img tagı çıkıyor. Bir siteye girdiğinizde sitede bulunan image içerikleri otomatik olarak dahil edilir ve otomatik olarak çalışır.

Ayrıca burada shopify yazılımcısının hatasından bahsedelim, böyle bir isteğin GET ile gönderilmemesi gerekli! GET methodu bir sunucudaki veriyi asla değiştirmemelidir bunun için duruma özel POST, PUT, DELETE methodları özenle tercih edilmelidir.

3. Badoo Full Account Takeover

Difficulty: Medium
Url: https://badoo.com
Report Link: https://hackerone.com/reports/127703
Date Reported: Arpil 1, 2016
Bounty Paid: $852

Badoo’ya ilk göz attığımızda bizi giriş yapma ekranı karşılıyor her şey burada başlıyor. Bir kullanıcı gmail ile hesap oluşturmaya çalıştığında ve badoo’ya gmail hesabını kullanması için yetki verdikten sonra,

https://eu1.badoo.com/google/verify.phtml?rt=&code=
adresine yönlendiriliyor. CSRF’ten koruyan tek şey her kullanıcıya unique olarak atanan “rt” parametresi. Saldırgan bunu incelerken neredeyse tüm json yanıtlarının rt parametresini döndürdüğünü farkediyor ve üzerine gidiyor. Bir süre üzerine uğraşıp denemeler yaptıktan sonra aşağıdaki gibi bir bağlantıyı keşfediyor.

https://eu1.badoo.com/worker-scope/chrome-service-worker.js
ve saldırgan bu adresin de rt parametresi taşıdığını farkediyor. Daha da iyisi bu json dosyası, kurbanın kötü amaçlı bir websitesine gitmesine gerek olmadan ( yukarıdaki örnekler gibi ) saldırgan tarafından keyfi olarak okunabilir. İşte saldırganın paylaştığı html kodu:




Badoo account take over
http://a





Esasen bir kurban bu sayfayı yüklediğinde Badoo scriptini çağırıyor, kullanıcı için rt parametresini alıyor ve ardından kurban adına arama yapıyor.Bu durumda saldırganın hesabını kurbanınkiyle ilişkilendirmek, esasen bir account take overi tamamlamaktı.

Burada saldırgan, rt parametresinin farklı adreslerde ve özellikle de json responselarında döndürüldüğünü fark etti. Bu nedenle exploit edebilmeyi amaçlayarak üzerine gitti. Bu da bize herhangi bir sorun hissettiğimizde üzerine gidip ona bağlı her şeyi dikkatle incelememiz gerektiğini hatırlatan güzel bir örnek oluyor.

Umarım örnekler durumu anlamanıza yardımcı olmuştur son olarak konuyu toparlayalım ve son defa üzerinden geçelim. CSRF, kurban bilmeden veya aktif olarak bir işlem gerçekleştirmeden de yürütülebilen bir saldırı türüdür. CSRF açıkları bulmak özellikle günümüzde kolay değildir ustalık gerektirebilir ve son örnekte olduğu gibi her şeyi test etmeniz, titizlikle incelemeniz gerekebilir. İhtiyacınıza göre en iyi request methodunu tercih etmeyi ihmal etmeyiniz, veriyle alakalı işlemlerinizi GET methodu ile yapmayınız!

CSRF, günümüzde eskisi kadar popüler değildir çünkü Google, 17 Şubat 2020 tarihinde sameSite kavramını belirli kullanıcılara açıldı. Bu durum sayesinde csrf tarihin tozlu sayfalarına doğru gitse de bu sefer özellikle e-ticaret sitelerinin göz bebeği sameSite kavramıyla sorunlar yaşamaya başladı. Örneğin;

SameSite problemi için örnek senaryo: Müşteri, üye iş yeri web sitesinde checkout sayfasına gelir. (üye iş yeri websitesi, müşterisi için bir cookie oluşturmuştur) Üye iş yeri, 3ds init isteği atar ve aldığı HTML içeriği yazdırarak müşterisini banka sayfasına yönlendirir(domain değişmiştir). Müşteri sms doğrulaması yapar. Banka müşteriyi iyzico’ya yönlendirir, iyzico ise üye iş yerinin sonuç sayfasına yönlendirme yapar. Bu sırada ödeme ile ilgili bilgileri bu adrese post metoduyla gönderir. Bu aşamada üye iş yeri sistemi, müşterisini tanımak veya sepeti kontrol etmek için cookie bilgisini sorgular. Eğer cookie sameSite=None ve secure olarak tanımlanmamışsa Chrome bu cookielerin okunmasına izin vermez. Üye iş yeri ödemenin kaydı için gerekli işlemleri yapamaz veya siparişi oluşturamaz. ( Kaynak — iyzico)

Bu konuya aşağıda bıraktığım video linklerden birinde MDISEC, konuyu detaylıca aktarıyor ayrıca cookie konusunda da çok keyifli ve bilgilendirici bir anlatım yapıyor. Yazımı okuduğunuz için teşekkür ederim.

https://www.youtube.com/watch?v=CKHai0OW6BY
https://www.youtube.com/watch?v=eWEgUcHPle0

— —
Yazımda içerisinde cümlelerden kullandığım kitap:
https://www.goodreads.com/book/show/33596532-web-hacking-101


___________________________________________
Hack' em all.
          
     
 
 
Gönderilme Tarihi: 13 Mart 2022 12:26:49 - Kayıtlı IP
  Mesajı İhbar Et!     

Medsa

Binbaşı

18 Ocak 2022
0 Mesaj




Aktiflik
Seviye
Deneyim
Fahri Yönetici


eline sağlık resim eklemeyi genelde şu siteden yapıyoruz www.hizliresim.com resmi yükledikten sonra direk resim linkini resim ekle butonundan yerleştirebilirsin


___________________________________________
❄️
       
     
 
 
Gönderilme Tarihi: 13 Mart 2022 13:12:28 - Kayıtlı IP
  Mesajı İhbar Et!     

onurhan1337

Teğmen

Ankara
13 Mart 2022
4 Mesaj




Aktiflik
Seviye
Deneyim



Alıntı : Alıntı-1: Orjinal mesajı yazan @Medsa; 13 March 2022
eline sağlık resim eklemeyi genelde şu siteden yapıyoruz www.hizliresim.com resmi yükledikten sonra direk resim linkini resim ekle butonundan yerleştirebilirsin



Bilgilendirme için teşekkürler :) bu yazıda resim kullanma ihtiyacım yoktu ancak ileriki yazılarımda göz önüne alacağım.


___________________________________________
Hack' em all.
          
     
 
 
Gönderilme Tarihi: 13 Mart 2022 14:52:23 - Kayıtlı IP
  Mesajı İhbar Et!     

HAYALET

Albay

03 Ocak 2022
259 Mesaj

Durum: Beyaz Ve Sen


Aktiflik
Seviye
Deneyim
Moderatör

Görev Org./Grup :

Sosyal Medya


Lojistik


Eline sağlık küçük bir öneride bulunmak istiyorum. Alınabilecek önlemleride değinmelisin bence


___________________________________________
Oraleti sevmemiz portakala olan düşkünlüğümüzden değil biz ezilenin yanındayız.
       
     
 
 
Gönderilme Tarihi: 13 Mart 2022 16:31:49 - Kayıtlı IP
  Mesajı İhbar Et!     

0x1dot

Teğmen

CW
17 Ocak 2022
32 Mesaj

Durum: Yorgun


Aktiflik
Seviye
Deneyim



@onurhan1337; emeğine sağlık reis form hırsızlığını engellemek için, kullanıcının erişebildiği formlara sayfa her yenilendiğinde değişen benzersiz bir hidden token eklememiz yeterli olur. Saldırgan tokeni tahmin edemeyeceği için saldırının önüne geçmiş oluruz.
@Medsa; yakında yeni alternatif site geliyor inşallah.


___________________________________________
Kim iradesini dininin hizmetçisi yaparsa her güç ona boyun eğer. Kim de dinini isteklerine alet ederse başı dertten kurtulmaz.
(İbn Arabi)
       
     
 
 
Gönderilme Tarihi: 14 Mart 2022 16:19:35 - Kayıtlı IP
  Mesajı İhbar Et!     

onurhan1337

Teğmen

Ankara
13 Mart 2022
4 Mesaj




Aktiflik
Seviye
Deneyim



Alıntı : Alıntı-1: Orjinal mesajı yazan @LENDROY420; 13 March 2022
Eline sağlık küçük bir öneride bulunmak istiyorum. Alınabilecek önlemleride değinmelisin bence



Tavsiye için çok teşekkürler. CSRF zafiyeti temelde tokenlere dayanıyor. Tokenlerin çalışma mantığını dipten alarak aktarıp üzerine önlem olarak neler alınabilir diyerek paylaşım yapacağım. Eski bountylerden bu konuda fayda sağlayanları da seçip üzerlerinden aktarmayı düşünüyorum.


___________________________________________
Hack' em all.
          
     
 
 
Gönderilme Tarihi: 14 Mart 2022 16:22:57 - Kayıtlı IP
  Mesajı İhbar Et!     

onurhan1337

Teğmen

Ankara
13 Mart 2022
4 Mesaj




Aktiflik
Seviye
Deneyim



Alıntı : Alıntı-1: Orjinal mesajı yazan @0x1dot; 13 March 2022
@onurhan1337; emeğine sağlık reis form hırsızlığını engellemek için, kullanıcının erişebildiği formlara sayfa her yenilendiğinde değişen benzersiz bir hidden token eklememiz yeterli olur. Saldırgan tokeni tahmin edemeyeceği için saldırının önüne geçmiş oluruz.
@Medsa; yakında yeni alternatif site geliyor inşallah.



Evet hocam CSRF zafiyeti yanlış bilmiyorsam eskisi kadar popüler değil ve sık rastlanmıyor. Google sameSite olayını getirdikten sonra iyice sonlarına geldik diyebiliriz. Ancak bu yazılımları geliştiren de bir insan ve her zaman bir hata payı olabiliyor denemekte fayda var :)


___________________________________________
Hack' em all.
          
     
 
 
[ 1 ]   2
 
Git:
  Arkadaşına yolla

Sayfa Yüklenme Süresi: 0.0644


 

İçerik Yöneticisi : AKTIF / Veriler Aktarıldı...
IP Adresiniz : 172.71.254.49 Güvenlik Nedeniyle Kayıt Altındadır.



Uzun yoldan geldik, uzun yola devam...

   


Reklam vermek için tıklayın

Forum Kuralları | Üye Olmak İçin | CyberAkademi | Operasyonel TİM'ler
CYBERAKADEMI ~ 2021