top of page

Lab: Insufficient workflow validation

Yazarın fotoğrafı: Songül ÖZÜGÜRLER
Songül ÖZÜGÜRLER
28 Nis
2 dakikada okunur

Lab: Insufficient workflow validation

Bu labda, bir e-ticaret uygulamasında satın alma sürecinin ne kadar varsayıma dayalı kurgulandığını fark ettim. İlk bakışta her şey normal görünüyordu; sepete ekle, checkout yap, sipariş tamamla… Ama biraz kurcalayınca, uygulamanın bazı adımları gerçekten kontrol etmediğini gördüm.Ve evet: Ödeme yapılmadan pahalı bir ürünü satın almak mümkündü.

Lab Bilgileri

- Lab: Insufficient workflow validation

- Seviye: Practitioner

- Hedef: Lightweight l33t leather jacket satın almak

- Kullanıcı: wiener:peter

Önce her şeyi “usulüne uygun” yaptım. Store credit’imin yettiği ucuz bir ürünü satın aldım ve Burp Proxy’de istekleri incelemeye başladım.

Sipariş tamamlandığında karşıma şu istek çıktı:

Lab: Insufficient workflow validation

Bu noktada durup şunu düşündüm:

“Gerçekten ödeme yapıldığı bu endpoint’te mi kontrol ediliyor, yoksa sadece buraya gelinmiş olması mı yeterli sayılıyor?”

Ucuz bir ürünü satın alarak uygulamanın standart akışını gözlemledim. Bu sırada GET /cart/order-confirmation isteğini yakaladım ve Burp Repeater’a gönderdim .

Daha sonra Lightweight l33t leather jacket ürününü sepete ekledim.

Lab: Insufficient workflow validation

Burada özellikle:

- Checkout’a basmadım

- Ödeme yapmadım

- Store credit’im düşmedi

Yani ceket sepetteydi ama satın alma işlemi tamamlanmamıştı.

Burp Repeater’da daha önce kaydettiğim şu isteği hiç değiştirmeden tekrar gönderdim:

Lab: Insufficient workflow validation

Ve ürünü satın alabildim. Bu şekilde lab çözüldü

Lab: Insufficient workflow validation

Uygulama şuna güveniyor

“Kullanıcı order confirmation sayfasına geldiyse, ödeme kesin yapılmıştır.”

Ama benim gördüğüm kadarıyla:

- Siparişin gerçekten ödenip ödenmediği server-side doğrulanmıyor

- Checkout adımı ile order state arasında sağlam bir bağ yok

- State değiştiren bir işlem GET isteğiyle tetikleniyor

Yani uygulama, güvenliği teknik kontrollerle değil, kullanıcı akışının bozulmayacağı varsayımıyla sağlamaya çalışıyor.

Bu lab bana şunu tekrar gösterdi:

- Business logic açıkları genelde “küçük detay” gibi görünür

- Otomatik araçlarla yakalanmaları zordur

- Ama gerçek sistemlerde ciddi maddi sonuçlar doğurabilirler

Bazen yapılması gereken tek şey şu soruyu sormak:

“Bu adım gerçekten kontrol ediliyor mu, yoksa sadece olmuş gibi mi kabul ediliyor?”

Bu labda karmaşık payload’lar, encoding’ler ya da exploit zincirleri yoktu. Sadece yanlış bir varsayım vardı.

Ve bazen bir sistemi kırmak için ihtiyacın olan tek şey, o varsayımı sorgulamak oluyor.Br sonrak labda görüşmek üzere

 
 
bottom of page