Skip to content

Latest commit

 

History

History
40 lines (38 loc) · 3.79 KB

0x14|Back_back_back_tick.md

File metadata and controls

40 lines (38 loc) · 3.79 KB

Business Logic Vulnerebilities

Oluşturulan kuklanın(uygulamanın) tanımlarında yani yapabileceği şeyler arasındaki birtakım eksiklikleri kullanarak zafiyet tespit edebilmek amaçlanıyor.

Lab: Excessive trust in client-side controls

  • Senin 100$’ın var bu ürünü sepetine ekleyebiliyorsun, fakirlikle yüzleşiyormuşsun, ürünü silebiliyormuşsun.
  • Ürünü sepete ekle dediğimizde giden request şu: image
  • Nomalde price DB’de bulunan bir değerdir, enayiler son kullanıcıdan alıyor. ProductID’yi alırsın, quantityi alırsın yeter.
  • 100 dolar yazdı oraya, 1.00$ olarak gitti ama. Demek ki sondaki 2 haneyi . dan sonra kabul ediyor.
  • Order tamamlandı.
  • Alınan price çok da önemli değil ama bunu kontrol edilmemesi sıkıntı.
    • product i &redir=PRODCT&quantity=1&price=133700
      • Mesela burda quantitiyi 0.1 yapınca ne olacak? Price ile çarpmış bu quantityi
    • ya da mesela order tamamlandığında 1.satıra order completed gibi bir şey yazıyordu o requeste gitseydik ne olacaktı?

Bu olay aslında daha karmaşık yapılarda da gözlemlenebiliyor. 1.adımda alınan formu 3. adımda da kullanan yapılarda mesela sıkıntı çıkartabilir.

Lab: High-level logic vulnerability

  • Yine aynı ceketi sepete ekle, place order yaptı olmadı
  • Miktarını arttırdı, o requesti incele. 0.1 artır desek sevmedi isteği.
  • Miktarı azalttı, -0 yazdı requeste ve hata vermedi.
  • Tekrar her şeyi sıfıradı ve terkardan ekledi ceketi. Bu sefer quantitye önce sakfhgja yazdı hata aldı sonra, 00 yazdı hata almadı 302 Found ama sepet boştu.
  • Quantity’e 1,00 yazdı hata verdi. Sonra 1 yazdı(normal değeri) Content-Lenght: 0 döndü. Tekrar yaptı 2 tane sepette oldu. Sonra negatif sayıda denedi o da oldu. -3 tane var, place order yaptı ama total price 0’dan aşşağı olamaz diye hata verdi
  • Sonra gitti farklı ürün koydu sepete pozitif olsun diye. image
  • Satın al deyince satın aldı. Ama lab çözülmedi - miktarını tam tersi üründen yapmak lazım.

Lab: Low-level logic flaw

  • Gitti ceketi ekledi, giden paketi inceledi. image
  • Kupon eklemeyi denedi. Hazır kupon formatlarına bakıyor.
  • Sonra sıfırdan gitti -1 tane ceket eklemeyi denedi 302 found ama eklemiyor. 1 tane ekledi, sonra -1 tane ekledi elde var 0, tekrardan -1 ekle dediğinde yine eklemedi. 1 tane varken direkt -3 ekle dediğnide yine olmadı.
  • Şöyle bir sıkıntı varsa zaten SQL injectiona gidiyor mevzu image
  • Max kaç tane sepete ekleyebiliyor onu denedi. 00 denedi.
  • Yeni bir parametre ekledi backend bunu umursamayacak, bu sayıyı 1’den 100000e kadar arttıracak birer birer. image
  • F5 atınca para kısmı bir artıyor bi eksiye düşüyor. Aynı isteği sürekli atıyor sürekli 99 tane eklenmiş oluyor. Eksideyken place order denedi ama para - olduğu için hata verdi.
  • Marketten gidip başka en pahalı eşya için aynısını yaptı. Sonra place order paketi için de aynısını yaptı.
  • Bu sayılar integer değerinde çıkmazsa overflow olduğu için negatif bir değer ortaya çıkıyor.
  • Bu iki ürünü 100$ ın altına getirebilecek kadar değer ürettiğinde place ordera basacak şekilde denedi.
  • Sayıları hesaplayıp denesen olabilir