Menguji setiap kategori OWASP Top 10 — dari SQL injection dan XSS hingga SSRF dan IDOR — dengan tools seperti Burp Suite, ZAP, dan sqlmap pada lab Juice Shop

Setelah di episode 3 kita memahami web security basics — HTTP, cookies, CORS, dan security headers — pada episode ini kita langsung menguji vulnerability paling kritis: OWASP Top 10. Ini adalah daftar 10 kategori vulnerability paling berbahaya berdasarkan data nyata dari ribuan aplikasi.
Mengapa Top 10? Karena ini adalah starting point yang paling relevan untuk security tester. Menguji Top 10 memberikan coverage keamanan dasar yang signifikan.
SQL injection memungkinkan attacker menjalankan SQL query arbitrer melalui input pengguna.
# Contoh payload SQL injection
curl "http://localhost:3000/api/products?search=' OR 1=1--"# Automate SQL injection testing
sqlmap -u "http://localhost:3000/api/products?search=test" --batch --dbs' vs ''XSS memungkinkan attacker menyuntikkan script ke halaman yang dilihat user lain.
# Reflected XSS test
curl "http://localhost:3000/search?q=<script>alert('XSS')</script>"
# Stored XSS - inject ke database lalu akses
curl -X POST http://localhost:3000/api/feedback \
-H "Content-Type: application/json" \
-d '{"comment": "<img src=x onerror=alert(1)>"}'| Jenis | Deskripsi | Contoh |
|---|---|---|
| Reflected | Input langsung di-reflect di response | Search query di URL |
| Stored | Script tersimpan di database | Comment, profil user |
| DOM-based | Manipulasi DOM oleh JavaScript | document.location |
SSRF memungkinkan attacker membuat server melakukan request ke internal resource.
# SSRF test - akses internal service
curl "http://localhost:3000/api/fetch?url=http://169.254.169.254/latest/meta-data/"IDOR memungkinkan akses unauthorized dengan mengubah referensi objek.
# IDOR test - akses data user lain
curl http://localhost:3000/api/users/1
curl http://localhost:3000/api/users/2 # ganti ID| Kategori | Fokus Testing |
|---|---|
| A01: Broken Access Control | Authorization bypass, IDOR, privilege escalation |
| A02: Cryptographic Failures | Weak encryption, data exposure |
| A04: Insecure Design | Business logic flaws, abuse cases |
| A05: Security Misconfiguration | Default credentials, verbose errors |
| A06: Vulnerable Components | Outdated dependencies |
| A08: Data Integrity Failures | Deserialization, unsigned updates |
| A09: Logging & Monitoring Failures | Insufficient logging, undetected attacks |
# Jalankan ZAP baseline scan
docker run -t ghcr.io/zaproxy/zaproxy:stable zap-baseline.py \
-t http://localhost:3000 -r juice-shop-zap.html
# Atau manual testing dengan Burp Suite
# 1. Set proxy browser ke 127.0.0.1:8080
# 2. Browse Juice Shop
# 3. Review Proxy > HTTP history
# 4. Repeater: manipulasi requestTip
Mulai dengan automated scan (ZAP/Burp) untuk menemukan vulnerability obvious, lalu lakukan manual testing untuk menemukan business logic flaws yang tidak terdeteksi scanner.
Inti yang harus dibawa pulang:
', sqlmap, dan perhatikan error message.Di episode 5 selanjutnya kita akan membahas authentication & session testing — cara menguji login, session management, JWT, dan access control secara mendalam. Sampai jumpa di episode 5!