Çalışma Mantığı Zafiyetleri

Sheldon

Katılımcı Üye
13 Ocak 2018
939
140
-
Link:
Logic Flaw

Çalışma Mantığı Zafiyetleri

Bu bölümde default varsayımlar nedeniyle oluşan çalışma mantığındaki zafiyetlerden yararlanmayı ve bunların oluşumlarını anlatacağız.
Bu hataların potansiyel etkilerini tartışacağız ve size bundan yararlanmayı öğreteceğiz.
Burada öğrendiklerinizi (gerçek hayat örneklerimizi) interaktif lab'larda pratik yapabilirsiniz.
Son olarak bu tarz çalışma mantığı hatalarını önlemenizi sağlayacak örnekler sunacağız.


[COLOR=rgb(255, 255, 255)][B]Lab'lar: Zaten çalışma mantığı hatası konsepti nedir ne değildir biliyorsanız ve amacınız sadece pratik yapmaksa aşağıdaki linke tıklayın[/B][/COLOR]


Çalışma mantığı hataları, uygulamada veya onun tasarımında oluşabilen ve saldırganın başaramaması gerekenleri başarmasını sağlayan kusurlardır.
Bu potansiyel kusurlar da saldırganın amacına ulaşması için uygulamayı manipüle edebilmesini sağlar. Bu kusur/hatalar sistemde oluşabilecek olağandışı durumları düşünmemiş olmaktan dolayısıyla oluşabilecek olağandışı durumlara karşı önlem almamaktan kaynaklanır.


Not:
Bu metindeki "çalışma mantığı" kavramı basitçe bahsi geçen uygulamanın çalışmak için uyguladığı bir dizi fonksiyonu kasteder. Bahsi geçen fonksiyonlar her zaman direkt olarak uygulamayla ilgili olmadığından dolayı bu zaafiyetler "çalışma mantığı zaafiyetleri" olarak bilinir.

Çalışma mantığı zaafiyetleri uygulamayı amacına uygun şekilde normal olarak kullananların karşılaşabileceği şeyler değildir ancak saldırgan bu normal kullanımın dışına çıkarak geliştiricilerin beklemediği şekilde uygulamayla etkileşim kurabilir ve kötü amaçlar için kullanabilir.

Uygulamanın çalışmasını sağlayan fonksiyonların temel işlevlerinden biri de kullanıcıları kısıtlayarak belli senaryolara belli tepki almalarını sağlamaktır. Gerçekleşen senaryoya göre uygulamanın tepki vermesini sağlarlar. Bu sayede kullanıcılar olağan senaryolar dışına çıkamazlar.

Çalışma mantığındaki zaafiyetler sayesinde saldırganlar bu sınırlardan muaf olabilir. Mesela satın alma gerçekleşmeden ürünü elde edebilirler. Başka bir örnekte kullanıcı verilerinin doğrulanmasındaki bir zaafiyette veya bu doğrulamanın hiç var olmadığı bir senaryoda kullanıcılar işlem yaparken sistemdeki değerleri değiştirebilir veyahut sistemde tanımlı olmayan girdiler gönderebilir ve bu sayede uygulamanın yapmaması gereken şeyleri zafiyet aracılığıyla yaptırılabilir.

Çalışma mantığı zafiyetleri çok geniş bir yelpazededir ve genellikle bu zafiyetler uygulamanın kendisine özgüdür. Bunları tespit etmek epey bilgi gerektirir. Bu yüzden otomatik scannerlar ile tespit edilemezler. Sonuç olarak bu zafiyetler bug bounty kovalayanlar ve manuel pentesterlar için güzel hedeflerdir.



Çalışma Mantığı Zafiyetleri Nasıl Ortaya Çıkar?

Bu zaafiyetler genelde tasarım ekibi veya geliştirme ekibinin kullanıcılar ile uygulama arasındaki etkileşimleri eksik öngörmesinden kaynaklanır. Bu öngörüsüzlük sebebiyle kullanıcı verilerinin eksik doğrulanmasına sebep olabilir. Mesela geliştirici ekip gelen verilerin sadece web tarayıcı üzerinden geleceğini öngörebilir dolayısıyla basit bir güvenlik protokolü kullanıyor olabilir ancak bu proxy kullanan bir salgırdan tarafından kolayca bypass edilebilir. Sonuçta bu, saldırganın beklenmeyen bir şekilde uygulama ile olan etkileşiminden dolayı yaşanmıştır. Yani saldırgan öngörülemeyen bir davranışta bulundu ve bu davranışa önlem alınmadığı için kolayca güvenlik açığı sömürüldü.

Bu zafiyetler daha çok karmaşık sistemlerde (geliştirici ekibin bile ne yaptığını Totalde bilemeyeceği) yaygındır. Bu zafiyetleri önlemek için geliştiriciler sistemin kendine hakim olmalıdır. Büyük kod tabanlarıyla çalışan bu geliştiriciler uygulamanın her tarafının nasıl çalıştığını tam olarak bilemeyebilir. Uygulamanın bir fonksiyonu ile çalışan bir geliştirici diğer fonksiyonlara hakim olmadığı için hatalı bir öngörüde bulunabilir ki bu da konumuz olan çalışma mantığı zafiyetlerine sebep olabilir. Geliştiriciler bu öngörü/varsayımlarını açıkça sürekli ifade etmeseler de bunların yaşanması olasıdır.
Çalışma Mantığı Zafiyetlerinin Etkileri

Bu zafiyetler ara sıra meydana çıkabilir buna rağmen pek önem arz etmezler. Kategorinin genişliğinden bahsetmiştik dolayısıyla etkileri de oldukça değişken diyebiliriz. Eğer saldırgan uygulamayı doğru şekilde sömürebilirse uygulamanın yapmaması gereken davranışların sonuçlarından biri olarak yüksek seviyede zarara yol açma potansiyeli vardır da diyebiliriz. Bu yüzden bunu yapmayı kendimiz öğrenemeseniz bile uygulamanız teorik olarak ideal bir çalışma mantığına sahip olmalıdır. Yoksa başka birinin bundan yararlanma ihtimali her zaman vardır.

Temeline inersek, bu zafiyetlerin etkileri hangi fonksiyonda ortaya çıktıklarına bağlıdır. Mesela doğrulama sisteminde ortaya çıktıysa bu büyük bir genel güvenlik sorunudur. Saldırganlar admin yetkisi elde edebilir veya kimlik doğrulamayı bypass ederek hassas verilere ulaşabilir. Bu da diğer zafiyetlere kapı aralar.

Finansal işlemlerdeki çalışma mantığı zafiyeti; fon çalma, dolandırıcılık ve benzeri maddi problemlere neden olabilir.

Ayrıca bu zafiyetler direkt olarak bir sömürüye izin vermese de saldırganlar tarafından kuruma veya işletmeye bir şekide zarar verilmesine izin verebilir.



Çalışma Mantığı Zafiyetlerinin Örnekleri

Bahsi geçen çalışma mantığı zafiyetlerini anlamanın en iyi yolu gerçek hayat örneklerini incelemek ve yapılmış hatalardan öğrenmektir. Bunu sağlayan bir takım yaygın çalışma mantığı zafiyeti örneklerini ve bu konuda pratik yapabileceğiniz örnekleri derledik. Aşağıdaki linkten ulaşabilirsiniz:

Tıkla bana 😎


Çalışma Mantığı Zafiyetleri Nasıl Önlenir?

Kısaca birkaç madde sıralayabiliriz:

1-Geliştiriciler ve testerların uygulamanın çalıştığı domainleri iyice kavramasını sağlayın.

2-Kullanıcıların uygulama ile gireceği davranışları ve uygulamanın tepkileri hakkında dar görüşlü olmayın.

3-Sunucunun durumu hakkında bazı varsayımlar yaptığımızı fark etmeliyiz. Sonra bu varsayımların doğru olup olmadığını kontrol etmek için gerekli adımları atmalıyız. Böylece sunucunun gerçekte ne durumda olduğundan emin olabiliriz. Bu, devam etmeden önce girdinin değerinin uygunluğunun kontrolünü de içerir.

Ayrıca testerların ve geliştiricilerin, uygulamanın farklı senaryolarda nasıl tepki vermesi gerektiğini anlamaları da oldukça önemli. Bu, geliştirici ekibin çalışma mantığı zafiyetlerini en kısa zamanda tespitine de yardımcı olur. Bunun içinse geliştirici ekip aşağıdaki talimatlar hakkında bolca pratik yapmalıdır:


Her aşamada yapılan olası senaryolar not alınmalı , tüm veri akışı ve belgeler güvenli şekilde kayıt altına alınmalı.

Kod açık yazılmalı, anlaşılması zor bir kod olası senaryolardaki uygulama tepkilerinin ne olması gerektiğinin anlaşılmasını zor hale getirir. İdeal bir kodun anlaşılması için ekstra dökümantasyona ihtiyaç duyulmaz.

Karışık bir kodu yazmanız gereken kaçınılmaz durumlarda ise diğer geliştiricilerin ve testerların öngörülen senaryoları bilmelerini sağlayacak anlaşılması kolay bir belge hazırlamanız çok önemlidir.

Birbiriyle bağlı kodlara ait referansları not edin. Bunların sıradışı bir şekilde sömürülmesi ile oluşabilecek yan etkileri düşünün

Çalışma Mantığı Zafiyetlerinin kendilerine has yapısı nedeniyle insan kaynaklı tek seferlik hata diye geçiştirip üstünü örtmek oldukça kolaydır lakin daha önce gösterdiğimiz gibi bu zafiyetler uygulamanın yapımı aşamasındaki kötü yapılmış pratiklerin bir sonucudur.

Bir çalışma mantığı zafiyetinin nasıl oluştuğunu ve niçin geliştirici ekibin tespit edemediğini iyi analiz etmek sürecinizdeki zayıflıkların tespitini kolaylaştırabilir. Ufak dokunuşlar benzer hataların önüne geçebilir veya hataların geliştirme sürecindeki erken tespitini sağlayabilir.
 
Moderatör tarafında düzenlendi:

Sheldon

Katılımcı Üye
13 Ocak 2018
939
140
-
Lab 1
Uygulama Denetimine Olan Fazla Güven


Link:
Tıkla

Bu lab kullanıcının yazdıklarını yeterince doğrulamıyor. Satın alma sürecini yazılandan farklı bir fiyatta almak için sömürebilirsiniz. Lab'ı çözmek için "l33t deri ceket" satın alın


Kendi hesabınıza da şu bilgiler aracılığıyla giriş yapabilirsiniz
"Wiener : Peter"
 
Son düzenleme:

Sheldon

Katılımcı Üye
13 Ocak 2018
939
140
-
Lab 2

Çelişkili Güvenlik

Link:
Tıkla bana 😎

Bu lab rastgele olarak normal kullanıcılara şirket çalışanlara özgü admin yetkileri veriyor. Lab'ı çözmek için admin panele erişip "carlos" isimli user'i silin
 

Sheldon

Katılımcı Üye
13 Ocak 2018
939
140
-
Lab 3

Çift Kullanımlı Uç Noktadaki Zayıf İzolasyon


Link:
Tıkla bana 😎

Bu lab, kullanıcıların aramalarına bağlı olarak onların yetkileri hakkında hatalı şekilde varsayımda bulunur. Sonuç olarak rastgele kullanıcıların hesabına erişmek için bu lab'in mantığını kendi yararınıza sömürebilirsiniz. Lab'ı çözmek için admin hesabına erişin ve "Carlos" isimli kullanıcıyı silin.

Hesabınıza şu şekilde girebilirsiniz: "Wiener: Peter"
 

Sheldon

Katılımcı Üye
13 Ocak 2018
939
140
-
Lab 4

İş Akışı Doğrulaması Eksikliği

Link:

Tıkla bana 😎

Bu lab, satın alım sürecindeki olaylar hakkında hatalı varsayımlarda bulunuyor. Lab'ı çözmek için "l33t deri ceket" satın alımındaki süreci sömürün.

Hesap bilgileriniz: "Wiener : Peter"
 

Sheldon

Katılımcı Üye
13 Ocak 2018
939
140
-
Lab 5

Flawed State Makinası ile Doğrulama Atlatma

Link:
Tıkla bana 😎

Bu lab, login sürecinde hatalı varsayımlarda bulunuyor. Lab'ı çözmek için önce bu süreci bypass edin ve lab'ın doğrulamasını geçin. Admin arayüzüne erişip "Carlos" isimli user'i silin.

Giriş bilgileriniz: "Wiener : Peter"
 

Sheldon

Katılımcı Üye
13 Ocak 2018
939
140
-
Lab 6

Sınırsız Para Akışı

Link:
Tıkla bana 😎

Bu lab'ın, satın alım sürecinde bir mantık hatası var. Lab'ı çözmek için bu hatayı sömürün ve bir "l33t deri ceket" satın alın.

Giriş bilgileriniz:
"Wiener : Peter "
 

Sheldon

Katılımcı Üye
13 Ocak 2018
939
140
-
Lab 7

Link:
Tıkla bana 😎

Oracle Şifrelemesi ile Giriş Bypass'ı

Bu lab, kullanıcılarına Oracle şifrelemesi sunan bir mantık hatası içeriyor. Lab'ı çözmek için bu hatayı sömürün ve admin paneline erişip "Carlos" isimli user'i silin.

Kendi hesabınıza giriş bilgileriniz: "Wiener : Peter "
 

Yagami Light0

Katılımcı Üye
5 May 2023
744
348
24
International team konularini son zamanlarda cok fazla goruyorum ve cok yararli konular , farkli zafiyyetler ve kaliteli icerik elinize saglik
 
Ü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.