top of page

Lab: High-level logic vulnerability

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

Lab: High-level logic vulnerability

Amaç

Bu lab’da amaç, Lightweight l33t leather jacket ürününü normalde mümkün olmayan bir fiyatla satın alarak lab’ı çözmek.

Giriş Bilgileri

Lab bize şu kullanıcıyı veriyor:

- Username: wiener

- Password: peter

- Store credit: $100

Sepete ürün ekleme işlemi sırasında, uygulamanın POST /cart isteğinde geçen quantity parametresini düzgün doğrulamadığını fark ettim. Yani kullanıcı “adet” bilgisini manipüle edince, sunucu bunu filtrelemeden kabul ediyordu

Lab: High-level logic vulnerability

Önce lab’a girdim ve wiener:peter ile login oldum. Ardından hedef ürün olan Lightweight l33t leather jacket ’ı satın almak istedim ama $100 kredi yetmediği için checkout aşamasında satın alma gerçekleşmedi.

Lab: High-level logic vulnerability

Buradan sonra “sepette bir şeyler oynanabiliyor mu?” diye Burp’e geçtim.

Herhangi bir ürünü sepete ekledim ve Burp Suite’te:

Proxy → HTTP history kısmından POST /cart isteğini yakaladım.

İçerikte şunu gördüm:

Ürün adedi tamamen quantity parametresinden gidiyor.

Yani arayüzdeki butonlardan bağımsız, sunucu aslında “gelen quantity neyse” ona göre işlem yapıyor.

Burada test amaçlı quantity değerini negatife çektim. Burp’te isteği şu şekilde gönderdim:

Lab: High-level logic vulnerability

Sonuç: Uygulama bunu reddetmedi. Yani “negatif adet olmaz” gibi bir sunucu doğrulaması yoktu. Sepet tarafında da toplam fiyatın aşağı doğru etkilendiğini gördüm.

Sepet toplamını çok düşürdüğümde checkout sırasında site bu sefer:

“eksi bakiye ile işlem yapılamaz” benzeri bir engel çıkardı.

Yani:

Sepette negatif değerleri kabul ediyor

Ama checkout tarafında “eksi senaryo” kontrolü var

Bu yüzden tek başına “toplamı negatife düşürmek” siparişi geçirmeye yetmedi.

Burada şu stratejiyle ilerledim:

Ceketi sepete normal şekilde ekledim

Lab: High-level logic vulnerability

toplamı düşürmek için productId=1 üzerinde negatif quantity kullandım.

Checkout engeline takılmamak için toplamı tekrar “ödenebilir” aralığa getirmem gerekiyordu.

Bu noktada productId=6 olan ürünü kullandım:

productId=6 → Hydrated crackers ( $92 )

Sonra sepete normal ekledim:

Lab: High-level logic vulnerability

Ben bu ürünü 13 kez sepete ekledim.

Böylece checkout’ın “eksi” kontrolüne takılmayacak şekilde sepet toplamı tekrar toparlandı,

ama negatif quantity’nin “toplamı düşürme” etkisi devam ettiği için,

toplam tutarı $100 store credit altına çekebildim.

Toplam tutar $100 altına düştükten sonra checkout yaptım ve sipariş başarıyla geçti. Böylece Lightweight l33t leather jacket normal fiyatının altında satın alınmış oldu ve lab çözüldü.

Lab: High-level logic vulnerability

Bir sonraki lab’da görüşmek üzere🌸

 
 
bottom of page