3 minute read

Business logic güvenlik zafiyetleri, saldırganın istenmeyen davranışlar gerçekleştirmesine izin veren uygulamanın tasarım ve uygulamasındaki güvenlik zafiyetidir. Saldırgan, potansiyel olarak kendi çıkarları için valid fonksiyonları kullanabilmektedir. Business logic güvenlik zafiyetleri genel olarak uygulamanın olağan dışı durumları nasıl ele alacağını düşünüp, değerlendirilmediği durumlarda ortaya çıkmaktadır.

Logic zafiyetleri genellikle uygulamanın normal kullanımları sırasında ortaya çıkmayacağından bu zafiyetleri aramayan kimseler tarafından görüntülenemez. Ancak saldırgan bu yaklaşımları ele alarak çıkar sağlayabilmektedir.

Lab 1 Lab 2 Lab 3 Lab 4 Lab 5 Lab 6 Lab 7 Lab 8 Lab 9 Lab 10

Lab-1 Excessive trust in client-side controls

Bu laboratuvar, kullanıcıdan aldığı girdiyi yeterince doğrulamamaktadır. Lab’ın tamamlanması için “Leather Jacket” satın alınmalıdır.

Ürün sepete eklenirken ücreti bilgisi de sepete gitmekte. Eğer bu değer 1 olarak değiştirilerse, sepette ürünün değeri 1 dolar olmaktadır.

image-center

image-center

image-center

Lab-2 High-level logic vulnerability

Bu laboratuvar, kullanıcıdan aldığı girdiği yeteri kadar kontrol etmemektedir. Lab’ın tamamlanması için “Leather Jacket” ürününün satın alınması gerekmektedir.

Ürün sepete eklendiğinde “quantity” parametresi görüntülenmektedir. Bu parametreye negatif bir değer verildiğinde sepet tarafında negatif bir ücret oluşmaktadır.

image-center

image-center

Buradan yola çıkarak başka bir ürün negatif şekilde sepete eklenmektedir. Checkout yapabilmek için total’in pozitif bir değer olması gerektiğinden hedeflenen ceket sepete yerleştirilmektedir. Lab. tamamlanmaktadır.

image-center

image-center

Lab-3 Inconsistent security controls

Bu laboratuvardaki logic zafiyeti, rastgele kullanıcıların sadece çalışanların erişmesi gereken admin yetkilerine erişebilmesine neden olmaktadır. Lab’ın tamamlanması için admin paneline erişip Carlos kullanıcısının silinmesi gerekmektedir.

Uygulamadaki admin arayüzüne ulaşabilmek için çalışan olmak gerekmektedir ve çalışanların dontwannacry adresi ile kayıt olması istenmektedir.

image-center

image-center

Kayıt olduktan sonra update email fonksiyonu kullanılarak email sadece çalışan email’i haline getirilmektedir.

image-center

image-center

Lab-4 Flawed enforcement of business rules

Bu laboratuvardaki satın alma iş akışında logic güvenlik zafiyeti bulunmaktadır. Lab’ın tamamlanması için “Leather Jacket” ürünün alınması gerekmektedir.

Uygulama yeni müşterilere ve bültene kaydolanlara indirim kuponu vermektedir.

image-center

image-center

Aynı kuponlar peşpeşe kullanılamamaktadır fakat kuponlar birbiri ardına kullanıldığında uygulama zafiyetli davranıp kabul etmektedir.

image-center

image-center

Lab-5 Low-level logic flaw

Bu laboratuvar, kullanıcıdan aldığı girdileri yeteri kadar doğrulamamaktadır. Lab’ın tamamlanması için “Leather Jacket” ürününün satın alınması gerekmektedir.

Uygulama sepete ürün eklerken tek seferde sadece 99 adet ürün eklemektedir. Burp Intuder ile sonsuz şekilde request gönderecek hale getirmek için null payload kullanıp “continue indefinitely” seçeneği seçilmelidir.

image-center

image-center

Ödenilmesi gereken ürün negatif sonsuza doğru gittikten sonra pozitif sonsuza doğru geri dönme eğilimi göstermektedir. Bu sırada 0 a en yakın negatif yerde ıntruder durdurulmalıdır.

image-center

Total değerinin pozitif olabilmesi gerekmektedir bu yüzden başka ürünler de eklenmelidir.

image-center

image-center

Lab-6 Inconsistent handling of exceptional input

Bu laboratuvar kullanıcıdan aldığı girdiyi doğru kontrol etmemektedir. Lab’ın tamamlanması için admin paneline erişip Carlos kullanıcısının silinmesi gerekmektedir.

Uygulamaya uzun bir email ile kayıt olunabilmektedir.

image-center

Ancak uygulamanın email değeri için belirli bir karakter sınırı bulunmaktadır.

image-center

Admin paneline ulaşabilmek için dontwannacry maili ile kayıt olmak gerekmektedir. “YETERİ-KADAR-UZUN-STRING@dontwannacry.YOUREMAIL-ID.web.security-academy.net “ email bilgisi ile kayıt olunduğunda mail onayı bizim sunucumuza gelmektedir ancak uygulama sadece dontwannacry[.]com kısmına kadar almaktadır. Bu yüzden bizi çalışan olarak değerlendirmektedir.

image-center

image-center

Lab-7 Weak isolation on dual-use endpoint

Bu laboratuvar, kullanıcı girdilerine dayalı bir ayrıcalık düzeyi hakkında hatalı varsayımda bulunmaktadır. Lab’ın tamamlanması için Carlos kullanıcısının silinmesi gerekmektedir.

Uygulamada parola değiştirme requesti oluşturduğumuzda kullanıcı adı geçerli parola ve yeni parolayı sormaktadır.

image-center

Ancak uygulama yeteri kadar validation yapmadığından current-password parametresi girilmeden de request gönderilebilmektedir. Böylelikle administrator kullanıcı ele geçirilerek carlos kullanıcısı silinmektedir.

image-center

image-center

Lab-8 Insufficient workflow validation

Bu laboratuvar, satın alma workflow’u hakkında hatalı varsayımda bulunmaktadır. Lab’ın tamamlanması için “Leather Jacket” ürünü satın alınmalıdır.

Paranın yetebileceği bir ürün alındığında uygulama sunucuya siparişin onaylandığı hakkında bir request göndermektedir. Bu request saklanmaktadır.

image-center

Daha sonra istenilen çeket ürünü alınmaya çalışıldığında hesaptaki para yetmediğinden sunucuya siparişin onaylanmadığına dair bir request göndermek istemektedir. Bu request yakalanarak droplanmaktadır ve daha önce yakalanan siparişi onaylayan request onun yerine gönderilmektedir.

image-center

image-center

image-center

Lab-9 Authentication bypass via flawed state machine

Bu laboratuvardanın login işleminde, güvenlik zafiyeti barındıran bir varsayımda bulunmaktadır. Lab’ın tamamlanamsı için Carlos kullanıcısının silinmesi gerekmektedir.

Uygulamaya login olunmaya çalışıldığında role-selector seçimini çağırıp yetkimizi seçmemizi istemektedir. Ancak görseldeği request sunucuya gönderilmeden droplanırsa ve home page ziyaret edilirse administrator yetkileri varsayılan olarak ayarlanmış olacaktır.

image-center

image-center

image-center

Lab-10 Infinite money logic flaw

Bu laboratuvarda bulunan satın alma işleminde logic zafiyet bulunmaktadır. Lab’ın tamamlanması için “Leather Jacket” satın alınmalıdır.

Gift card aldıktan sonra indirip kuponu girildiğinde 10 dolar veren ama maaliyeti 7 dolar olan bir akış gerçekleşmektedir. Bu akış macro yardımıyla otomatize edilerek sonsuz paraya doğru ilerlenebilmektedir.

image-center

7 dolar vererek Gift card satın alma + indirim kuponu gerçekleştirme+ checkout+ confirmed+ gift card verisi ile 10 dolar geri alma

image-center

Intruder yardımıyla bu akış tekrarlanmaktadır.

image-center

image-center