June 2, 2026
Web/Mobil Uygulamalarda Business Logic Zafiyetler ve Örnek Bir Uygulama
Web ve mobil uygulamalar günümüz dünyasında hayatımızın neredeyse her alanında kullanılmaktadır. Alışveriş yapmak, bankacılık işlemlerini…
Mert Erkoç
3 min read
Web ve mobil uygulamalar günümüz dünyasında hayatımızın neredeyse her alanında kullanılmaktadır. Alışveriş yapmak, bankacılık işlemlerini gerçekleştirmek, oyun oynamak veya sosyal medya kullanmak için sürekli çeşitli uygulamalarla etkileşimde bulunuluyor. Bu kadar yaygın kullanılan sistemlerde güvenlik konusu da oldukça önemli hale gelmiştir.
Bir uygulamanın güvenliği denildiğinde çoğu kişinin aklına SQL Injection, veya XSS gibi klasik güvenlik açıkları gelmektedir. Ancak bazı durumlarda uygulamanın teknik olarak güvenli olması tek başına yeterli olmamaktadır. Çünkü sistemin çalışma mantığında yapılan hatalar da saldırganlar tarafından kötüye kullanılabilmektedir. Bu tarz zafiyetler "Business Logic Vulnerabilities" yani iş mantığı zafiyetleri olarak adlandırılır.
Business logic zafiyetleri genellikle uygulamanın çalışma akışındaki eksikliklerinden dolayı ortaya çıkar. Bu açıklar bazen bir kullanıcının normalde yapmaması gereken işlemleri gerçekleştirmesine, bazen de sistemin sunduğu özellikleri kötüye kullanmasına neden olabilir. Özellikle web ve mobil uygulamalarda kullanıcı işlemleri çok fazla olduğu için bu tür zafiyetlerle sık karşılaşılmaktadır.
Bu yazıda business logic zafiyetlerinin ne olduğu, web ve mobil uygulamalarda nasıl ortaya çıktığı, gerçek hayattaki örnekleri, örnek uygulama ve alınabilecek önlemler incelenecektir.
Business Logic Zafiyeti Nedir?
Business logic zafiyetleri, uygulamanın teknik altyapısından çok işleyiş mantığında bulunan güvenlik problemleridir. Yani sistem normal çalışıyor gibi görünse bile, uygulamanın kuralları yeterince doğru tasarlanmadığında saldırganlar bu durumu kendi avantajlarına kullanabilir.
Diğer güvenlik açıklarında genellikle kod seviyesinde hatalar bulunurken, business logic zafiyetlerinde problem daha çok uygulamanın akışında ortaya çıkar. Bu nedenle bazen antivirüsler, güvenlik duvarları veya otomatik güvenlik tarama araçları bu açıkları tespit edemeyebilir. Çünkü yapılan işlem teknik olarak "geçerli" bir işlem gibi görünmektedir.
Örneğin bir alışveriş uygulamasında kullanıcıya özel tanımlanan indirim kodunun sınırsız şekilde kullanılabilmesi bir business logic zafiyetidir. Burada sistem çalışmaya devam eder fakat geliştiricilerin koyması gereken kullanım sınırları eksik olduğu için açık oluşur.
PortSwigger WebSec Academy Üzerinde Business Logic Zafiyeti Örneği ve Analizi
Bu bölümde business logic zafiyetlerine örnek olması açısından Portswigger Web Security Academy platformunda bulunan "High-level logic vulnerability" isimli lab incelenmiştir.
Lab ortamında kullanıcıya belirli bir miktar store credit verilmekte ve bu bakiye ile bir ürün satın alınması istenmektedir. Amaç ise uygulamanın iş mantığında bulunan açığı kullanarak normalde satın alınamayacak bir ürünü daha düşük bir fiyatla satın alabilmektir.
Uygulamada satın almamız gereken ceketin View details butonuna basıp ceketi görüntülüyoruz. Sonrasında ise ceketi sepete eklerken hangi istek gittiğini analiz etmemiz açısından isteği burpsuite ile intercept ediyoruz
İstek /cart endpointine gidiyor ve productId'nin yanında quantity değeri gönderdiğini farkediyoruz.
Uygulama analiz edildiğinde sepete ürün ekleme işlemlerinde gönderilen quantity parametresinin manuel olarak değiştirilebildiği fark ediyoruz. Intercept ettiğimiz bu istekteki quantity değerini negatif bir değer ile değiştirip neler olacağını inceliyoruz.
Sepete negatif sayıda ürün eklenmesi ve Total price'ın negatife dönmesi bize burada bir "Business Logic Zaafiyeti" olduğuna işaret ediyor. Ancak toplam sepet tutarı tamamen negatif olduğunda uygulama siparişi engelliyor ve "Cart total price cannot be less than zero" hatasını verdiğini farkediyoruz.
Bu sebeple başka bir yöntem bulmamız ve ceketin fiyatını 100 doların altına indirmemiz gerektiğini farkediyoruz. Öncelikle satın alınması istenen deri ceket ürünü sepete normal şekilde 1 adet ekliyoruz. Ardından daha ucuz olan başka bir ürün negatif miktarda sepete ekliyoruz. Böylece toplam fiyat düşürülmüş fakat tamamen negatif olmadığı için sistem siparişi kabul etmiştir.
Sonuç olarak uygulamanın quantity parametresini yeterince kontrol etmemesi business logic zafiyetine neden olmuştur. Teknik olarak sistem düzgün çalışıyor gibi görünse de iş mantığında bulunan eksiklik saldırganın ürün fiyatlarını manipüle etmesine imkan sağlamıştır. Bu durum business logic zafiyetlerinin yalnızca kod hatalarından değil, uygulamanın tasarım sürecindeki eksikliklerden de kaynaklanabileceğini göstermektedir.
Teşekkürler.