Burp Suite: Web Application Security Testing Platform
Pengertian Burp Suite
Burp Suite adalah platform terintegrasi untuk web application security testing yang dikembangkan oleh PortSwigger. Burp Suite menyediakan satu set alat yang bekerja bersama untuk mengintercept, memodifikasi, memindai, dan mengeksploitasi traffic HTTP/HTTPS antara browser dan web server.
Burp Suite tersedia dalam tiga edisi:
- Community Edition (gratis) - fitur terbatas, tanpa Scanner otomatis, tanpa save/load project
- Professional Edition (berbayar) - dengan Scanner otomatis, session handling, filtering lanjutan
- Enterprise Edition - untuk CI/CD integration dan scanning terpusat
Arsitektur Burp Suite
Burp Suite bekerja sebagai intercepting proxy - semua traffic browser diarahkan melalui Burp, yang memungkinkan inspeksi dan modifikasi secara real-time.
# Flow umum Burp Suite:
# Browser -> Burp Proxy -> Target Web Server
# (request) | ^ (request diteruskan)
# | |
# Inspeksi & Modifikasi oleh user
Semua tab dan tools di Burp Suite saling terintegrasi - request yang ditangkap di Proxy bisa langsung dikirim ke Repeater, Intruder, atau Scanner.
Proxy - Dasar dari Semua Tool
Setup Browser
Untuk menggunakan Burp Suite, browser harus dikonfigurasi menggunakan proxy:
Firefox:
- Settings $\to$ Network Settings $\to$ Manual proxy configuration
- HTTP Proxy:
127.0.0.1Port:8080 - Centang "Also use this proxy for HTTPS"
- Buka
http://burpuntuk download CA certificate
Chrome/Chromium:
# Jalankan chrome dengan proxy flag
google-chrome --proxy-server=http://127.0.0.1:8080
# Atau chromium
chromium-browser --proxy-server=http://127.0.0.1:8080
Install CA Certificate untuk HTTPS
HTTPS interception butuh CA certificate yang ditanam di browser:
- Buka
http://burpsuiteatauhttp://127.0.0.1:8080 - Download
cacert.der - Di Firefox: Preferences $\to$ Privacy & Security $\to$ Certificates $\to$ Import
- Centang "Trust this CA to identify websites"
- Di Chrome: Settings $\to$ Security $\to$ Manage certificates $\to$ Import
Proxy Controls
# Tombol: Intercept is on/off
# Saat ON: setiap request dihentikan untuk diinspeksi
# Saat OFF: request diteruskan tanpa interupsi
# Forward: Kirim request yang sudah diinspeksi/dimodifikasi
# Drop: Buang request (tidak diteruskan)
# Action: Kirim request ke tool lain (Repeater, Intruder, Scanner)
# Response interception: Options > Intercept Responses
# Berguna untuk memodifikasi JavaScript atau response header di client-side
HTTP History
Semua request yang melewati proxy tercatat di tab HTTP History:
# Informasi yang tercatat:
# - Host, Method, URL, Params, Status, Length, MIME type
# - Request dan response lengkap
# - Highlight dengan warna (custom rules)
# Filter history:
# - By MIME type (HTML, JSON, CSS, Images, dll)
# - By status code (2xx, 3xx, 4xx, 5xx)
# - By search term atau regex
# - By annotation
WebSockets History
Burp juga menangkap traffic WebSocket yang sangat berguna untuk aplikasi real-time:
# Tab WebSockets History
# Menampilkan semua pesan WebSocket yang dikirim/diterima
# Bisa dimodifikasi dan di-replay
Repeater - Manual Request Manipulation
Repeater memungkinkan Anda mengirim ulang request HTTP yang telah dimodifikasi - mirip dengan curl tetapi dengan GUI yang nyaman.
Penggunaan Dasar
- Kirim request ke Repeater dari Proxy (right-click $\to$ Send to Repeater)
- Modifikasi request di panel kiri
- Klik Send untuk mengirim request
- Response muncul di panel kanan
# Contoh: Manipulasi parameter ID
# Original: GET /api/user?id=1
# Modifikasi: GET /api/user?id=2
# Modifikasi: GET /api/user?id=1' OR '1'='1
# Modifikasi: GET /api/user?id=../../../etc/passwd
Fitur Repeater Lanjutan
# Multiple tabs - buka banyak request sekaligus, masing-masing independent
# Search in response - cari string dalam response
# Pretty/Raw/Hex - tampilan response
# Render - render HTML response
# Follow redirection - auto redirect
# Change request method - convert GET ke POST atau sebaliknya
# Copy as curl command - generate curl command dari request
Use Case Repeater
- Parameter fuzzing manual - uji parameter satu per satu
- IDOR testing - ubah ID parameter untuk akses data pengguna lain
- SQL injection manual - uji berbagai payload injeksi
- Authentication bypass - manipulasi cookie, token, header Authorization
- Path traversal - modifikasi path parameter
Intruder - Automated Brute Force dan Fuzzing
Intruder adalah tool untuk automated custom attacks - mengirim banyak request dengan variasi payload pada positions tertentu.
Positions
Tandai parameter yang akan di-fuzz dengan delimiter §:
# Original: GET /api/user?id=1
# Position: GET /api/user?id=§1§
# Multiple positions:
# POST /login?csrf=§token§
# username=§admin§&password=§password§
Attack Types
- Sniper - satu payload set, satu position (brute force satu parameter)
- Battering ram - satu payload set, semua position (sama untuk semua parameter)
- Pitchfork - multiple payload sets, dipasangkan per baris (user:pass dictionary)
- Cluster bomb - multiple payload sets, semua kombinasi (cartesian product)
# Contoh:
# Sniper: /api/user?id=§1§ → payload: [1,2,3,'a','b']
# Cluster bomb: username=§admin§&password=§pass§ → user[5] × pass[100] = 500 request
Payload Types
Intruder mendukung berbagai payload source:
- Simple list - daftar manual atau dari file
- Runtime file - baca dari file di runtime (support large files)
- Numbers - sequential numbers (1-1000, step 2)
- Dates - date brute force
- Brute forcer - generate semua kombinasi karakter
- Character blocks - untuk buffer overflow/length testing
- Case modification - uppercase, lowercase, mixed case
- Recursive grep - ekstrak value dari response, gunakan untuk request berikutnya
- Custom iterator - kombinasi kustom dari beberapa daftar
Grep dan Analysis
# Grep - Match: tandai response yang mengandung string tertentu
# Contoh: grep "error" untuk deteksi error SQL
# Contoh: grep "Welcome" untuk deteksi login berhasil
# Grep - Extract: ekstrak value spesifik dari response
# Contoh: ekstrak CSRF token untuk setiap request
# Response length analysis:
# - Response length berbeda = potensi vulnerability
# - Sort by length untuk spotting outlier
Scanner - Automated Vulnerability Detection (Pro Only)
Burp Scanner adalah DAST (Dynamic Application Security Testing) otomatis yang mendeteksi kerentanan web.
Crawl and Audit
# Active Scan:
# 1. Crawl - spider aplikasi, temukan semua endpoint
# 2. Audit - uji setiap endpoint dengan ribuan payload
#
# Pilihan scan:
# - Crawl and Audit (full)
# - Crawl only (tanpa pengujian)
# - Audit only (hanya uji endpoint yang sudah diketahui)
Jenis Kerentanan yang Terdeteksi
- SQL Injection (time-based, error-based, boolean blind, out-of-band)
- Cross-Site Scripting (XSS) (reflected, stored, DOM-based)
- Cross-Site Request Forgery (CSRF)
- Server-Side Request Forgery (SSRF)
- XML External Entities (XXE)
- Path Traversal
- Command Injection
- File Upload vulnerabilities
- HTTP Request Smuggling
- Authentication bypass dan logic flaws
- Insecure Direct Object References (IDOR)
Decoder - Encoding dan Decoding
Decoder memungkinkan encoding/decoding data dalam berbagai format - sangat berguna saat menganalisis parameter yang di-encode.
Format yang Didukung
# Encode/Decode:
# - URL encoding: %20, +, %3C
# - HTML entities: &, <, >
# - Base64: base64 encode/decode
# - ASCII hex: \x41\x42\x43
# - Hex: 414243
# - Octal: \101\102\103
# - Binary: 01000001
# - Gzip: decompress/compress
Smart Decode
Decoder dan buru mendeteksi format encoding secara otomatis - tinggal paste value dan klik Decode as:
# Contoh: string ter-encode berlapis
# Input: PHNjcmlwdD5hbGVydCgxKTwvc2NyaXB0Pg==
# Step 1: Decode as Base64 → <script>alert(1)</script>
# Step 2: Encode as URL → %3Cscript%3Ealert(1)%3C%2Fscript%3E
Hash Detection
Decoder tidak bisa membalikkan hash (satu arah), tapi bisa mengidentifikasi tipe hash berdasarkan format:
# Panjang hash mengindikasikan tipe:
# 32 chars → MD5
# 40 chars → SHA1
# 56 chars → SHA224
# 64 chars → SHA256
# 96 chars → SHA384
# 128 chars → SHA512
Extender - Memperluas Fungsionalitas
Extender memungkinkan instalasi plugin (BApp Store) dan ekstensi kustom untuk Burp Suite.
BApp Store
Ekstensi resmi dari PortSwigger dan komunitas:
# Cara akses: Extender > BApp Store
# Install dengan satu klik - semua ekstensi sudah verified
Ekstensi Wajib
Berikut ekstensi yang sangat berguna untuk web pentest:
1. Autorize
Autorize mendeteksi authorization bypass - mencoba mengakses resource sebagai user berbeda tanpa login ulang.
# Cara kerja:
# 1. Set cookie user A
# 2. Autorize mengkopi request dan mengirim ulang dengan cookie user B
# 3. Jika response = 200 OK dan mirip dengan response asli → IDOR detected
#
# Fitur:
# - Auto-detect authorization issues secara real-time
# - Comparison engine untuk membandingkan response
# - Support multi-role testing
2. Turbo Intruder
Turbo Intruder adalah Intruder versi high-performance berbasis Python:
# Script Turbo Intruder dasar
def queueRequests(target, wordlists):
engine = RequestEngine(endpoint=target.endpoint,
concurrentConnections=10,
requestsPerConnection=100,
pipeline=False)
for word in open('/usr/share/wordlists/rockyou.txt'):
engine.queue(target.req, word.rstrip())
def handleResponse(req, interesting):
if 'Welcome' in req.response:
table.add(req)
Keunggulan: HTTP pipelining, koneksi concurrent tinggi, scripting kustom Python, cocok untuk rate-limited testing.
3. Other Recommended Extensions
# JSON Web Token (JWT) - decode/edit/replay JWT
# HTTP Request Smuggler - deteksi request smuggling
# Upload Scanner - fuzzing file upload endpoints
# Collaborator Everywhere - inject Collaborator payloads
# Param Miner - discover hidden parameters
# Active Scan++ - additional active scan checks
# Content-Type Converter - convert Content-Type header
Web Pentest Workflow dengan Burp Suite
Berikut workflow tipikal untuk web penetration testing menggunakan Burp Suite:
Phase 1: Reconnaissance
# 1. Set proxy dan browse aplikasi secara manual
# - Login, navigasi ke setiap halaman
# - Isi form, upload file, submit data
# - Catat semua endpoint di HTTP History
# 2. Spider aplikasi (jika pro)
# - Right-click target > Spider this host
# - Follow semua link yang ditemukan
# 3. Discovery dengan Content Discovery (Pro)
# - Tools > Content Discovery
# - Brute force hidden directories dan parameters
Phase 2: Mapping
# 1. Analisis sitemap - identifikasi semua endpoint dan metode
# - Catat area authenticated vs unauthenticated
# - Identifikasi parameter yang diterima setiap endpoint
# 2. Kirim endpoint menarik ke Repeater untuk eksplorasi manual
# - Parameter ID → uji IDOR
# - Parameter search → uji injection
# - Upload endpoint → uji file upload
# 3. Analisis request flow dengan Proxy History
# - Cari parameter yang dikirim di URL vs POST body
# - Identifikasi token CSRF, JWT, cookie session
Phase 3: Testing
# 1. Manual testing dengan Repeater
# - Parameter manipulation
# - Header injection (Host, Referer, X-Forwarded-For)
# - Cookie manipulation
# 2. Automated fuzzing dengan Intruder/Turbo Intruder
# - Parameter fuzzing untuk injection
# - Brute force login
# - Directory/file enumeration
# 3. Active scan (Pro only)
# - Right-click endpoint > Do active scan
# - Prioritaskan endpoint yang menerima input user
# 4. Authorization testing dengan Autorize
# - Set cookie user A, request sebagai user A
# - Autorize replay sebagai user B
# - Jika B bisa akses resource A → vulnerability
Phase 4: Exploitation and Reporting
# 1. Konfirmasi vulnerability
# - Gunakan Repeater untuk memverifikasi
# - Capture proof dengan screenshot
# 2. Generate bukti konsep (PoC)
# - Copy as curl command dari Repeater
# - Simpan request di Project files
# 3. Export findings
# - Burp Pro: Report > Generate report
# - Format: HTML, XML, PDF
# - Include request/response evidence
Kesimpulan
Burp Suite adalah platform yang sangat komprehensif untuk web application security testing. Dengan proxy sebagai pusatnya, semua tool (Repeater, Intruder, Scanner, Decoder, Extender) bekerja secara terintegrasi untuk memfasilitasi workflow pengujian yang efisien. Penguasaan Burp Suite - terutama kemampuan menggunakan Repeater untuk manipulasi manual dan Intruder/Turbo Intruder untuk automated fuzzing - adalah keterampilan yang wajib dimiliki oleh setiap web security professional.
Mulailah dengan menguasai Proxy + Repeater untuk eksplorasi manual. Setelah nyaman, lanjutkan ke Intruder untuk otomatisasi, dan eksplorasi Extender untuk memperluas kemampuan platform.