Skip to content

ddettaa/SupaShield

Repository files navigation

SupaShield Version Next.js Tailwind CSS Supabase

πŸ›‘οΈ SupaShield

Platform Edukasi & Penetration Testing Keamanan Database Supabase
Uji kekuatan Row Level Security (RLS) Anda sebelum penyerang yang melakukannya.


πŸ“– Tentang

SupaShield adalah platform berbasis web yang membantu developer menguji dan memahami kerentanan keamanan pada database Supabase. Dengan antarmuka bergaya Neon Brutalist (cyber-terminal), pengguna dapat melakukan simulasi serangan langsung terhadap API PostgREST untuk memverifikasi apakah kebijakan Row Level Security (RLS) mereka bekerja dengan benar.

⚠️ Disclaimer: SupaShield dibuat untuk tujuan edukasi dan pengujian keamanan pada lingkungan development/staging milik sendiri. Jangan gunakan alat ini pada sistem yang bukan milik Anda.


✨ Fitur Utama

πŸ”« Konsol Penetrasi Langsung

  • Injeksi URL langsung β€” Paste satu URL penuh Supabase REST API beserta semua query filter
  • Semua metode HTTP β€” GET, POST, PUT, PATCH, DELETE
  • Payload Builder ganda β€” Mode Key-Value atau Raw JSON Editor dengan validasi realtime, prettify, dan minify
  • CORS Bypass β€” Request diproxy melalui backend Next.js server-side, melewati pembatasan browser
  • Analisis Forensik otomatis β€” Verdict keamanan instan (Rentan / Aman / Benteng Aktif)

πŸ“š Modul Edukasi

  • Anatomi serangan pada database Supabase
  • Panduan kerentanan umum: RLS tidak aktif, IDOR, SECURITY DEFINER, eskalasi privilege
  • Seluruh konten dalam Bahasa Indonesia

πŸ§ͺ Template Injeksi Siap Pakai

6 skenario kerentanan umum berdasarkan riset keamanan PostgREST:

Template Metode Severity
Dump Seluruh Tabel Users GET πŸ”΄ Tinggi
Eskalasi Privilege (is_admin) PATCH πŸ”΄ Kritis
Baca Data Pengguna Lain (IDOR) GET πŸ”΄ Tinggi
Panggil RPC Tanpa Auth POST πŸ”΄ Kritis
Hapus Baris Anonim DELETE πŸ”΄ Kritis
Sisipkan Data Palsu POST 🟑 Sedang

πŸ› οΈ Teknologi

Layer Teknologi
Framework Next.js 16 (App Router, TypeScript)
Styling Tailwind CSS v4 (@theme syntax)
Database Supabase (Postgres + RLS)
Font Space Grotesk, JetBrains Mono
Desain Neon Brutalist (0px radius, cyber-terminal aesthetic)

πŸš€ Persiapan & Instalasi

Prasyarat

  • Node.js β‰₯ 18.x
  • npm atau pnpm
  • Akun Supabase (untuk testing)

1. Clone Repository

git clone https://github.com/ddettaa/SupaShield.git
cd SupaShield

2. Pasang Dependensi

npm install

3. Konfigurasi Environment

Buat file .env.local di root proyek:

# URL proyek Supabase Anda (untuk fitur internal, opsional)
NEXT_PUBLIC_SUPABASE_URL=https://YOUR-PROJECT.supabase.co

# Anon Key proyek Supabase Anda (untuk fitur internal, opsional) 
NEXT_PUBLIC_SUPABASE_ANON_KEY=eyJhbGciOi...

Catatan: Variabel .env.local di atas hanya diperlukan jika Anda ingin mengintegrasikan fitur internal SupaShield (seperti menyimpan log scan). Untuk menggunakan konsol penetrasi, Anda memasukkan URL & Key target langsung di halaman Tool.

4. Setup Database (Opsional)

Jalankan migrasi SQL di dashboard Supabase Anda:

# File: supabase/migrations/00000000000000_initial_schema.sql
# Salin dan jalankan isi file ini di Supabase SQL Editor

5. Jalankan Development Server

npm run dev

Buka http://localhost:3000 di browser.


πŸ“ Struktur Proyek

SupaShield/
β”œβ”€β”€ app/
β”‚   β”œβ”€β”€ api/
β”‚   β”‚   └── scan/
β”‚   β”‚       └── route.ts          # Backend proxy (bypass CORS)
β”‚   β”œβ”€β”€ education/
β”‚   β”‚   └── page.tsx              # Halaman edukasi keamanan
β”‚   β”œβ”€β”€ security-guide/
β”‚   β”‚   └── page.tsx              # Panduan protokol keamanan
β”‚   β”œβ”€β”€ tool/
β”‚   β”‚   └── page.tsx              # Konsol penetrasi utama
β”‚   β”œβ”€β”€ globals.css               # Design tokens & custom utilities
β”‚   β”œβ”€β”€ layout.tsx                # Root layout (fonts, navbar, footer)
β”‚   └── page.tsx                  # Landing page
β”œβ”€β”€ components/
β”‚   β”œβ”€β”€ Navbar.tsx                # Navigasi global (desktop + mobile)
β”‚   └── Footer.tsx                # Footer
β”œβ”€β”€ supabase/
β”‚   └── migrations/
β”‚       └── 00000000000000_initial_schema.sql  # Skema database + RLS 
β”œβ”€β”€ package.json
β”œβ”€β”€ tailwind.config.ts
β”œβ”€β”€ tsconfig.json
└── .env.local                    # Variabel environment (tidak di-commit)

πŸ”’ Arsitektur Keamanan Database

Skema database SupaShield mengimplementasikan RLS (Row Level Security) ketat pada 3 tabel:

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚   profiles   β”‚    β”‚ leaderboards β”‚    β”‚  scan_logs   β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€    β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€    β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ RLS: ON      β”‚    β”‚ RLS: ON      β”‚    β”‚ RLS: ON      β”‚
β”‚ SELECT: All  β”‚    β”‚ SELECT: All  β”‚    β”‚ SELECT: Own  β”‚
β”‚ INSERT: Own  β”‚    β”‚ INSERT: Own  β”‚    β”‚ INSERT: Own  β”‚
β”‚ UPDATE: Own  β”‚    β”‚ UPDATE: Own  β”‚    β”‚ UPDATE: None β”‚
β”‚ DELETE: None β”‚    β”‚ DELETE: None β”‚    β”‚ DELETE: None β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
  • profiles β€” Data profil publik, hanya bisa diubah oleh pemilik
  • leaderboards β€” Skor publik dengan constraint max 100.000
  • scan_logs β€” Log hasil scan bersifat privat dan immutable (tidak bisa diubah/dihapus)

🎨 Sistem Desain

SupaShield menggunakan estetika Neon Brutalist yang terinspirasi dari antarmuka terminal retro:

  • Warna: Hijau neon (#00ff41), cyan (#00d2fd), merah (#ff7351) di atas latar hitam pekat
  • Tipografi: Space Grotesk (heading) + JetBrains Mono (code/terminal)
  • Border Radius: 0px di semua elemen (brutalist)
  • Efek: Scanline overlay, glitch text hover, animasi pulse/bounce

πŸ—ΊοΈ Roadmap

  • Landing page & navigasi responsif
  • Modul edukasi keamanan
  • Konsol penetrasi dengan proxy bypass CORS
  • Template injeksi cepat (6 skenario)
  • Raw JSON payload editor
  • Integrasi payment gateway (Midtrans/Xendit)
  • Edge Functions testing
  • Export laporan scan ke PDF
  • Autentikasi pengguna & riwayat scan
  • Leaderboard komunitas

πŸ“„ Lisensi

Proyek ini dibuat untuk tujuan edukasi. Gunakan secara bertanggung jawab.


Dibangun dengan β˜• dan kecintaan terhadap keamanan siber
SupaShield β€” Karena keamanan database bukan opsional.

About

Platform Edukasi & Penetration Testing Keamanan Database Supabase

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors