Lab: Flawed enforcement of business rules
Lab: Flawed enforcement of business rules

Lab: Flawed enforcement of business rules Seviye: APPRENTICE Bu labda problem teknik bir exploitten çok, satın alma akışında yanlış kurgulanmış bir iş kuralı (business rule) . Amaç, bu mantık hatasını kullanarak Lightweight l33t leather jacket ürününü satın almak.
Lab bize giriş için hazır bir hesap da veriyor: wiener : peter
Önce siteye kendi hesabımla giriş yaptım. Bu aşamada özel bir şey yapmadım; amacım uygulamanın satın alma ve indirim mantığını anlamaktı.

Kısa bir incelemeden sonra şunu fark ettim:
- Giriş yapan yeni kullanıcılara otomatik olarak NEWCUST5 adlı bir kupon veriliyor

- Sayfanın en altından newsletter’a kayıt olunca ikinci bir kupon geliyor: SIGNUP30 .


Burada kritik nokta şu: Sistem birden fazla kuponu aynı siparişte kabul ediyor.
Bu, başlı başına bir açık değil ama test edilmesi gereken bir alan.
Deri ceketi sepetime ekledim ve checkout’a geçtim. Kuponları normal şekilde uyguladım.

- İndirim yapıldı
- Ama toplam tutar hâlâ yaklaşık 930 dolar civarındaydı
Yani sistem, kuponları birer kez kullanınca düzgün çalışıyor gibi görünüyordu.
Bu noktada asıl soru şuydu:
Bu kuponların kaç kez kullanılabileceğini sistem gerçekten doğru takip ediyor mu?”
Kuponları tekrar denemeye başladım.
- Aynı kuponu arka arkaya girdiğimde sistem hata verdi “Kupon zaten uygulanmış”

- Bu, yüzeysel olarak doğru bir kontrol gibi duruyor.
Ama burada önemli bir detay var: Sistem yalnızca son girilen kupona bakıyor.
Bunu fark ettikten sonra kuponları sırayla değiştirerek denedim:

Ve bu noktada şunu gördüm: Sistem, toplam kupon kullanımını değil , sadece aynı kuponun arka arkaya kullanılmasını kontrol ediyor.
Yani:
- “Bu kupon daha önce kullanıldı mı?”
- “Bu kupon bir öncekiyle aynı mı?”
İş kuralı yanlış tanımlanmış.
Bu mantık hatasını kullanarak kuponları dönüşümlü şekilde uygulamaya devam ettim.
Her turda:
- Ürün fiyatı biraz daha düştü
- Sistem bunu meşru bir işlem gibi kabul etti
Sonunda:
- Toplam tutarı 0 dolara kadar düşürdüm
- Siparişi tamamladım
- Lab başarıyla çözüldü

Bu lab bana şunu net gösterdi:
- Sistemlerde “küçük” görünen iş kuralları çok kritik
- Kupon, indirim, kampanya gibi alanlar genelde yeterince test edilmiyor
- Teknik olarak her şey doğru görünse bile, mantık yanlışsa sistem sömürülüyor
Gerçek hayatta bu açık:
- Sınırsız indirim
- Finansal kayıp
- Kampanya sisteminin tamamen çökmesi
anlamına gelir. Bir sonraki labta görüşmek üzere🌸🌸







