Web Hacking Part 2
SQL Fundamentals
Databases 101
Database adalah kumpulan data terstruktur yang disimpan secara rapi sehingga mudah diakses, dikelola, dan dianalisis. Database digunakan hampir di semua sistem, seperti:
- Login pengguna (username & password)
- Media sosial (post, komentar, like)
- Streaming (riwayat tontonan & rekomendasi)
- Aplikasi bisnis skala kecil hingga besar
Jenis-Jenis Database
Secara umum ada 2 jenis utama database:

1. Relational Database (SQL)
- Data terstruktur dan konsisten
- Disimpan dalam tabel (baris & kolom)
- Memiliki relasi antar tabel
- Cocok untuk data yang membutuhkan akurasi tinggi
- Contoh penggunaan: transaksi e-commerce
2. Non-Relational Database (NoSQL)
- Data tidak berbentuk tabel
- Struktur data fleksibel
- Cocok untuk data yang bervariasi
- Contoh penggunaan: konten media sosial
Tabel, Baris, dan Kolom (Relational Database)
- Tabel: tempat menyimpan data (contoh: tabel
Books) - Kolom: jenis data (id, nama, tanggal)
- Baris: satu record/data lengkap
- Setiap kolom memiliki tipe data (string, integer, decimal, date)
- Data yang tidak sesuai tipe akan ditolak

Primary Key & Foreign Key

Primary Key
- Penanda unik untuk setiap data
- Tidak boleh duplikat
- Hanya satu primary key per tabel
- Contoh:
id
Foreign Key
- Kolom yang merujuk primary key di tabel lain
- Digunakan untuk membuat relasi antar tabel
- Bisa lebih dari satu dalam satu tabel
- Contoh:
author_iddi tabelBooks
- What type of database should you consider using if the data you're going to be storing will vary greatly in its format?
Non-relational database
- What type of database should you consider using if the data you're going to be storing will reliably be in the same structured format?
Relational database
- In our example, once a record of a book is inserted into our "Books" table, it would be represented as a ___ in that table?
row
- Which type of key provides a link from one table to another?
Foreign Key
- which type of key ensures a record is unique within a table?
Primary Key
SQL
SQL (Structured Query Language) adalah bahasa yang digunakan untuk mengakses, mengelola, dan memanipulasi data di database relasional.
SQL digunakan untuk:
- Membuat tabel
- Menambah, mengubah, dan menghapus data
- Mengambil (query) data dari database
DBMS (Database Management System)
Database dikelola melalui DBMS, yaitu software penghubung antara pengguna dan database.
Contoh DBMS:
- MySQL
- MariaDB
- Oracle Database
- MongoDB
DBMS memungkinkan pengguna untuk retrieve, update, dan manage data.
Kelebihan SQL & Database Relasional
Alasan SQL banyak digunakan:
- Cepat Mampu memproses dan menampilkan data dalam jumlah besar dengan cepat.
- Mudah Dipelajari Sintaks SQL mirip bahasa Inggris dan mudah dibaca.
- Reliabel Struktur data yang ketat menjaga akurasi dan konsistensi data.
- Fleksibel Mendukung query kompleks untuk analisis data secara efisien.
Praktik Awal SQL (Hands-On)
Untuk mulai menggunakan SQL:
- Jalankan mesin/VM
- Buka terminal
- Masuk ke MySQL dengan perintah:
mysql -u root -p - Masukkan password:
tryhackme - Jika berhasil, akan muncul prompt:
mysql>
- What serves as an interface between a database and an end user?
DBMS
- What query language can be used to interact with a relational database?
sql
Database and Table Statements
1. Database Statements
CREATE DATABASE
Digunakan untuk membuat database baru.
CREATE DATABASE thm_bookmarket_db;SHOW DATABASES
Menampilkan semua database yang tersedia di MySQL.
SHOW DATABASES;USE DATABASE
Menentukan database aktif yang akan digunakan untuk menjalankan perintah SQL selanjutnya.
USE thm_bookmarket_db;DROP DATABASE
Menghapus database yang sudah tidak diperlukan. ⚠️ Hati-hati karena data akan hilang permanen.
DROP DATABASE database_name;2. Table Statements
CREATE TABLE
Digunakan untuk membuat tabel di dalam database aktif.
CREATE TABLE book_inventory (
book_id INT AUTO_INCREMENT PRIMARY KEY,
book_name VARCHAR(255) NOT NULL,
publication_date DATE
);Penjelasan penting:
book_id→ Integer, otomatis bertambah, Primary Keybook_name→ Teks maksimal 255 karakter, tidak boleh kosongpublication_date→ Tanggal terbit buku
SHOW TABLES
Menampilkan daftar tabel dalam database yang sedang aktif.
SHOW TABLES;DESCRIBE / DESC
Melihat struktur tabel, termasuk:
- Nama kolom
- Tipe data
- Primary Key
- Null / Not Null
DESCRIBE book_inventory;ALTER TABLE
Digunakan untuk mengubah struktur tabel, seperti:
- Menambah kolom
- Menghapus kolom
- Mengubah tipe data
Contoh menambah kolom jumlah halaman:
ALTER TABLE book_inventory
ADD page_count INT;DROP TABLE
Menghapus tabel dari database. ⚠️ Data tabel akan hilang permanen.
DROP TABLE table_name;Answer Questions
show databases;
# | THM{575a947132312f97b30ee5aeebba629b723d30f9} |
# | task_4_db |
# | thm_books |
# | thm_books2 |
# | tools_db |
use task_4_db
show tales;
# THM{692aa7eaec2a2a827f4d1a8bed1f90e5e49d2410}CREATE DATABASE thm_bookmarket_db;
SHOW DATABASES;
USE thm_bookmarket_db;
CREATE TABLE book_inventory (
book_id INT AUTO_INCREMENT PRIMARY KEY,
book_name VARCHAR(255) NOT NULL,
publication_date DATE
);
SHOW TABLES;
DESCRIBE book_inventory;
ALTER TABLE book_inventory
ADD page_count INT;
DROP TABLE book_inventory;
DROP DATABASE thm_bookmarket_db;- Using the statement you've learned to list all databases, it should reveal a database with a flag for a name; what is it?
THM{575a947132312f97b30ee5aeebba629b723d30f9}
- In the list of available databases, you should also see the task_4_db database. Set this as your active database and list all tables in this database; what is the flag present here?
- Use the command to list all tables in the current database.
THM{692aa7eaec2a2a827f4d1a8bed1f90e5e49d2410}
CRUD Operations
CRUD adalah singkatan dari:
- Create
- Read
- Update
- Delete
CRUD merupakan operasi dasar dalam pengelolaan data di database.
1. Create (INSERT)
Digunakan untuk menambahkan data baru ke dalam tabel.
INSERT INTO books (id, name, published_date, description)
VALUES (1, "Android Security Internals", "2014-10-14",
"An In-Depth Guide to Android's Security Architecture");Penjelasan:
INSERT INTO→ menambah databooks→ nama tabel- Kolom ditulis sesuai urutan nilai
VALUES→ data yang dimasukkan
2. Read (SELECT)
Digunakan untuk mengambil / melihat data dari tabel.
Ambil semua kolom
SELECT * FROM books;Ambil kolom tertentu
SELECT name, description FROM books;Catatan:
*berarti semua kolom- Bisa memilih kolom tertentu untuk efisiensi
3. Update (UPDATE)
Digunakan untuk mengubah data yang sudah ada.
UPDATE books
SET description = "An In-Depth Guide to Android's Security Architecture."
WHERE id = 1;Penjelasan:
SET→ menentukan data yang diubahWHERE→ menentukan baris yang akan diubah ⚠️ TanpaWHERE, semua data bisa berubah
4. Delete (DELETE)
Digunakan untuk menghapus data dari tabel.
DELETE FROM books WHERE id = 1;Catatan penting:
WHEREsangat penting- Tanpa
WHERE, semua data dalam tabel akan terhapus
Ringkasan CRUD
| Operasi | Perintah SQL | Fungsi |
|---|---|---|
| Create | INSERT | Menambah data |
| Read | SELECT | Melihat data |
| Update | UPDATE | Mengubah data |
| Delete | DELETE | Menghapus data |
Answer Questions
USE tools_db;
SHOW TABLES;
# hacking_tools
SELECT * FROM hacking_tools;
# +----+------------------+----------------------+-------------------------------------------------------------------------+--------+
# | id | name | category | description | amount |
# +----+------------------+----------------------+-------------------------------------------------------------------------+--------+
# | 1 | Flipper Zero | Multi-tool | A portable multi-tool for pentesters and geeks in a toy-like form | 169 |
# | 2 | O.MG cables | Cable-based attacks | Malicious USB cables that can be used for remote attacks and testing | 180 |
# | 3 | Wi-Fi Pineapple | Wi-Fi hacking | A device used to perform man-in-the-middle attacks on wireless networks | 140 |
# | 4 | USB Rubber Ducky | USB attacks | A USB keystroke injection tool disguised as a flash drive | 80 |
# | 5 | iCopy-XS | RFID cloning | A tool used for reading and cloning RFID cards for security testing | 375 |
# | 6 | Lan Turtle | Network intelligence | A covert tool for remote access and network intelligence gathering | 80 |
# | 7 | Bash Bunny | USB attacks | A multi-function USB attack device for penetration testers | 120 |
# | 8 | Proxmark 3 RDV4 | RFID cloning | A powerful RFID tool for reading, writing, and analyzing RFID tags | 300 |
# +----+------------------+----------------------+-------------------------------------------------------------------------+--------+USE thm_books;
SHOW TABLES;
SELECT * FROM books;
INSERT INTO books (id, name, published_date, description)
VALUES (7, "Android Security Internals", "2014-10-14", "An In-Depth Guide to Android's Security Architecture");
SELECT * FROM books;
SELECT name, description FROM books;
UPDATE books
SET description = "An In-Depth Guide to Android's Security Architecture."
WHERE id = 7;
DELETE FROM books WHERE id = 7;- Using the tools_db database, what is the name of the tool in the hacking_tools table that can be used to perform man-in-the-middle attacks on wireless networks?
Wi-Fi Pineapple
- Using the tools_db database, what is the shared category for both USB Rubber Ducky and Bash Bunny?
USB Attacks
Clauses
Clause adalah bagian dari perintah SQL yang digunakan untuk menentukan kriteria data, seperti:
- Data apa yang diambil
- Bagaimana data dikelompokkan
- Bagaimana data diurutkan
- Bagaimana data difilter
Clause yang sudah dikenal sebelumnya:
FROM→ menentukan tabelWHERE→ memfilter baris data
Pada bagian ini fokus ke: DISTINCT, GROUP BY, ORDER BY, HAVING
1. DISTINCT
Digunakan untuk menghilangkan data duplikat dan hanya menampilkan nilai yang unik.
SELECT DISTINCT name FROM books;Fungsi utama:
- Menampilkan data tanpa pengulangan
- Cocok untuk kolom yang sering memiliki nilai sama
2. GROUP BY
Digunakan untuk mengelompokkan data berdasarkan kolom tertentu.
Biasanya dipakai bersama fungsi agregat seperti COUNT(), SUM(), AVG().
SELECT name, COUNT(*)
FROM books
GROUP BY name;Hasil:
- Data dikelompokkan per
name - Menampilkan jumlah kemunculan tiap nama buku
3. ORDER BY
Digunakan untuk mengurutkan hasil query.
Urutan naik (Ascending)
ORDER BY published_date ASC;Urutan turun (Descending)
ORDER BY published_date DESC;Catatan:
ASC→ dari kecil ke besar / lama ke baruDESC→ dari besar ke kecil / baru ke lama
4. HAVING
Digunakan untuk memfilter hasil GROUP BY.
Berbeda dengan WHERE:
| WHERE | HAVING |
|---|---|
| Filter sebelum grouping | Filter setelah grouping |
| Tidak bisa pakai agregat | Bisa pakai agregat |
SELECT name, COUNT(*)
FROM books
GROUP BY name
HAVING name LIKE '%Hack%';Hasil:
- Hanya menampilkan grup data yang mengandung kata "Hack"
- Tetap mempertahankan hasil agregasi (
COUNT)
Ringkasan Cepat
| Clause | Fungsi |
|---|---|
| DISTINCT | Menghilangkan duplikat |
| GROUP BY | Mengelompokkan data |
| ORDER BY | Mengurutkan data |
| HAVING | Memfilter hasil GROUP BY |
Answer Questions
USE tools_db;
SELECT DISTINCT category FROM hacking_tools;
SELECT * FROM hacking_tools ORDER BY name ASC;
# | 7 | Bash Bunny | USB attacks | A multi-function USB attack device for penetration testers | 120 |
SELECT * FROM hacking_tools ORDER BY name DESC;
# | 3 | Wi-Fi Pineapple | Wi-Fi hacking | A device used to perform man-in-the-middle attacks on wireless networks | 140 |USE thm_books;
SELECT * FROM books;
SELECT DISTINCT name FROM books;
SELECT name, COUNT(*) FROM books
GROUP BY name;
SELECT * FROM books
ORDER BY published_date ASC;
SELECT * FROM books
ORDER BY published_date DESC;
SELECT name, COUNT(*) FROM books
GROUP BY name
HAVING name LIKE '%Hack%';- Using the tools_db database, what is the total number of distinct categories in the hacking_tools table?
6
- Using the tools_db database, what is the first tool (by name) in ascending order from the hacking_tools table?
Bash Bunny
- Using the tools_db database, what is the first tool (by name) in descending order from the hacking_tools table?
Wi-Fi Pineapple
Operators
Operator SQL digunakan untuk memfilter dan membandingkan data sehingga query menjadi lebih spesifik dan akurat. Operator biasanya digunakan bersama WHERE clause.
1. Logical Operators
LIKE
Digunakan untuk mencari pola teks dalam kolom.
WHERE description LIKE "%guide%";Catatan:
%= wildcard (karakter bebas)- Cocok untuk pencarian kata di dalam teks
AND
Menggabungkan beberapa kondisi. Hasil TRUE jika semua kondisi terpenuhi.
WHERE category = "Offensive Security"
AND name = "Bug Bounty Bootcamp";OR
Hasil TRUE jika salah satu kondisi terpenuhi.
WHERE name LIKE "%Android%" OR name LIKE "%iOS%";NOT
Membalikkan kondisi (pengecualian).
WHERE NOT description LIKE "%guide%";BETWEEN
Digunakan untuk mengecek nilai dalam rentang tertentu (inklusif).
WHERE id BETWEEN 2 AND 4;2. Comparison Operators
Sama dengan (=)
WHERE name = "Designing Secure Software";Tidak sama dengan (!=)
WHERE category != "Offensive Security";Lebih kecil dari (<)
WHERE published_date < "2020-01-01";Lebih besar dari (>)
WHERE published_date > "2020-01-01";Lebih kecil / besar atau sama dengan (<=, >=)
WHERE published_date <= "2021-11-15";WHERE published_date >= "2021-11-02";Ringkasan Operator
Logical Operators
| Operator | Fungsi |
|---|---|
| LIKE | Cari pola teks |
| AND | Semua kondisi harus benar |
| OR | Salah satu kondisi benar |
| NOT | Membalikkan kondisi |
| BETWEEN | Cek nilai dalam rentang |
Comparison Operators
| Operator | Fungsi |
|---|---|
| = | Sama dengan |
| != | Tidak sama dengan |
| < | Lebih kecil |
| > | Lebih besar |
| <= | Lebih kecil / sama |
| >= | Lebih besar / sama |
Answer Questions
USE tools_db;
SELECT * FROM hacking_tools;
SELECT * FROM hacking_tools
WHERE category LIKE "%Multi-tool%";
# | 1 | Flipper Zero | Multi-tool | A portable multi-tool for pentesters and geeks in a toy-like form | 169 |
SELECT * FROM hacking_tools
WHERE amount >= 300;
# | 5 | iCopy-XS | RFID cloning | A tool used for reading and cloning RFID cards for security testing | 375 |
# | 8 | Proxmark 3 RDV4 | RFID cloning | A powerful RFID tool for reading, writing, and analyzing RFID tags | 300 |
SELECT * FROM hacking_tools
WHERE category Like "%Network intelligence%" AND amount < 100;
# | 6 | Lan Turtle | Network intelligence | A covert tool for remote access and network intelligence gathering | 80 |USE thm_books2;
SELECT * FROM books;
SELECT * FROM books
WHERE description LIKE "%guide%";
SELECT * FROM books
WHERE category = "Offensive Security" AND name = "Bug Bounty Bootcamp";
SELECT * FROM books
WHERE name LIKE "%Android%" OR name LIKE "%iOS%";
SELECT * FROM books
WHERE NOT description LIKE "%guide%";
SELECT * FROM books
WHERE id BETWEEN 2 AND 4;
SELECT * FROM books
WHERE name = "Designing Secure Software";
SELECT * FROM books
WHERE category != "Offensive Security";
SELECT * FROM books
WHERE published_date < "2020-01-01";
SELECT * FROM books
WHERE published_date > "2020-01-01";
SELECT * FROM books
WHERE published_date <= "2021-11-15";
SELECT * FROM books
WHERE published_date >= "2021-11-02";- Using the tools_db database, which tool falls under the Multi-tool category and is useful for pentesters and geeks?
- Use WHERE clause and LIKE operators
Flipper Zero
- Using the tools_db database, what is the category of tools with an amount greater than or equal to 300?
Lan Turtle
Functions
Function dalam SQL digunakan untuk memproses dan memanipulasi data agar query lebih efisien dan informatif.
1. String Functions
CONCAT()
Menggabungkan dua atau lebih string menjadi satu.
SELECT CONCAT(name, " is a type of ", category, " book.") AS book_info
FROM books;Fungsi utama:
- Menggabungkan teks dari beberapa kolom
- Berguna untuk membuat output deskriptif
GROUP_CONCAT()
Menggabungkan data dari banyak baris menjadi satu string.
SELECT category, GROUP_CONCAT(name SEPARATOR ", ") AS books
FROM books
GROUP BY category;Fungsi utama:
- Menggabungkan data hasil
GROUP BY - Output lebih ringkas dan informatif
SUBSTRING()
Mengambil sebagian teks dari sebuah string.
SELECT SUBSTRING(published_date, 1, 4) AS published_year
FROM books;Keterangan:
- Angka pertama = posisi awal
- Angka kedua = panjang karakter
LENGTH()
Menghitung jumlah karakter dalam string (termasuk spasi).
SELECT LENGTH(name) AS name_length
FROM books;2. Aggregate Functions
Digunakan untuk mengolah banyak baris data menjadi satu hasil.
COUNT()
Menghitung jumlah baris data.
SELECT COUNT(*) AS total_books
FROM books;SUM()
Menjumlahkan seluruh nilai pada kolom tertentu (tidak termasuk NULL).
SELECT SUM(price) AS total_price
FROM books;MAX()
Mengambil nilai terbesar dari suatu kolom.
SELECT MAX(published_date) AS latest_book
FROM books;MIN()
Mengambil nilai terkecil dari suatu kolom.
SELECT MIN(published_date) AS earliest_book
FROM books;Ringkasan Cepat
String Functions
| Fungsi | Kegunaan |
|---|---|
| CONCAT | Menggabungkan string |
| GROUP_CONCAT | Gabungkan banyak baris |
| SUBSTRING | Ambil sebagian teks |
| LENGTH | Hitung panjang string |
Aggregate Functions
| Fungsi | Kegunaan |
|---|---|
| COUNT | Hitung jumlah data |
| SUM | Menjumlahkan nilai |
| MAX | Nilai terbesar |
| MIN | Nilai terkecil |
Answer Questions
USE tools_db;
SELECT name, LENGTH(name)
AS name_length FROM hacking_tools
ORDER BY name_length DESC;
# | name | name_length |
# +------------------+-------------+
# | USB Rubber Ducky | 16 |
# | Wi-Fi Pineapple | 15 |
SELECT COUNT(*) AS total_tools
FROM hacking_tools;
# | total_tools |
# +-------------+
# | 8 |
SELECT SUM(amount) AS total_amount
FROM hacking_tools;
# | total_amount |
# +--------------+
# | 1444 |
SELECT GROUP_CONCAT(name SEPARATOR " & ") AS tool_names
FROM hacking_tools
WHERE amount % 10 != 0;USE thm_books2;
SELECT CONCAT(name, " is a type of ", category, " book.") AS book_info FROM books;
SELECT category, GROUP_CONCAT(name SEPARATOR ", ") AS books
FROM books GROUP BY category;
SELECT SUBSTRING(published_date, 1, 4) AS published_year FROM books;
SELECT LENGTH(name) AS name_length FROM books;
SELECT COUNT(*) AS total_books FROM books;
SELECT SUM(price) AS total_price FROM books;
SELECT MAX(published_date) AS latest_book FROM books;
SELECT MIN(published_date) AS earliest_book FROM books;- Using the tools_db database, what is the tool with the longest name based on character length?
- Use the LENGTH() function and sort the tool name in descending order
USB Rubber Ducky
- Using the tools_db database, what is the total sum of all tools?
- Use the SUM() function
1444
- Using the tools_db database, what are the tool names where the amount does not end in 0, and group the tool names concatenated by " & ".
- Use the GROUP_CONCAT() function
Flipper Zero & iCopy-XS
Burp Suite: The Basics
What is Burp Suite?
Berikut terjemahan ke Bahasa Indonesia dengan catatan yang rapi, ringkas, dan mudah dipelajari:
📌 Ringkasan Burp Suite
Burp Suite adalah sebuah framework berbasis Java yang dirancang sebagai solusi lengkap untuk melakukan pengujian penetrasi (penetration testing) aplikasi web. Burp Suite telah menjadi standar industri dalam pengujian keamanan aplikasi web, aplikasi mobile, serta aplikasi yang menggunakan API.
🔍 Fungsi Utama
Secara sederhana, Burp Suite berfungsi untuk:
- Menangkap (intercept) seluruh lalu lintas HTTP/HTTPS antara browser dan web server
- Melihat, memodifikasi, dan meneruskan request sebelum sampai ke server
- Memanipulasi response sebelum diterima oleh browser
Kemampuan inilah yang menjadi fondasi utama Burp Suite dan menjadikannya alat yang sangat penting untuk pengujian manual aplikasi web. Request yang ditangkap dapat diarahkan ke berbagai komponen dalam framework Burp Suite.
🧩 Edisi Burp Suite
Burp Suite tersedia dalam beberapa edisi:
1️⃣ Burp Suite Community Edition
- Gratis (non-komersial dan legal)
- Fokus pada fitur inti untuk pengujian manual
- Edisi yang digunakan dalam pembelajaran ini
2️⃣ Burp Suite Professional
Versi tanpa batasan dari Community Edition, dilengkapi fitur lanjutan seperti:
- 🔎 Automated vulnerability scanner
- 🚀 Fuzzer / brute-force tanpa rate limit
- 💾 Penyimpanan project & pembuatan laporan
- 🔌 API bawaan untuk integrasi dengan tools lain
- 🧩 Dukungan penuh ekstensi
- 🌐 Burp Suite Collaborator (request catcher untuk mendeteksi blind vulnerability)
📌 Kesimpulan: Burp Suite Professional adalah alat yang sangat kuat dan menjadi pilihan utama para profesional keamanan.
3️⃣ Burp Suite Enterprise
- Digunakan untuk continuous scanning
- Berjalan di server, bukan di mesin lokal
- Melakukan pemindaian otomatis dan berkala terhadap aplikasi web
- Mirip dengan Nessus, tetapi khusus aplikasi web
- Tidak digunakan untuk serangan manual
- Which edition of Burp Suite runs on a server and provides constant scanning for target web apps?
Burp Suite Enterprise
- Burp Suite is frequently used when attacking web applications and ______ applications.
Mobile
Features of Burp Community
Meskipun Burp Suite Community Edition memiliki fitur yang lebih terbatas dibandingkan versi Professional, edisi ini tetap menyediakan berbagai tools penting yang sangat berguna untuk pengujian aplikasi web.
🔑 Fitur-Fitur Inti
1️⃣ Proxy
- Fitur paling terkenal dari Burp Suite
- Memungkinkan intersepsi dan modifikasi request serta response
- Digunakan saat berinteraksi langsung dengan aplikasi web
2️⃣ Repeater
- Digunakan untuk menangkap, mengubah, dan mengirim ulang request
- Sangat berguna untuk:
- Uji coba payload secara berulang (trial & error)
- Pengujian kerentanan seperti SQL Injection (SQLi)
- Menguji perilaku endpoint tertentu
3️⃣ Intruder
- Digunakan untuk mengirim banyak request ke endpoint
- Umumnya dipakai untuk:
- Brute-force
- Fuzzing parameter
- ⚠️ Pada Community Edition terdapat rate limit
4️⃣ Decoder
- Berfungsi untuk encode dan decode data
- Digunakan untuk:
- Mendekode data hasil tangkapan
- Meng-encode payload sebelum dikirim
- Lebih efisien karena terintegrasi langsung di Burp Suite
5️⃣ Comparer
- Digunakan untuk membandingkan dua data
- Perbandingan bisa dilakukan pada:
- Level kata (word)
- Level byte
- Sangat membantu untuk analisis respons besar dengan cepat
6️⃣ Sequencer
- Digunakan untuk menguji tingkat keacakan (randomness) token
- Contoh target pengujian:
- Session cookie
- Token autentikasi
- Randomness yang lemah dapat membuka celah serangan serius
🧩 Ekstensi Burp Suite
- Burp Suite berbasis Java, sehingga mendukung pengembangan ekstensi
- Bahasa yang didukung:
- Java
- Python (Jython)
- Ruby (JRuby)
🔌 Burp Extender & BApp Store
- Burp Extender: memuat ekstensi dengan cepat
- BApp Store: marketplace untuk ekstensi pihak ketiga
- Beberapa ekstensi memerlukan lisensi Professional, namun banyak ekstensi gratis untuk Community Edition
📌 Contoh ekstensi populer:
- Logger++ → meningkatkan fungsi logging bawaan Burp Suite
- Which Burp Suite feature allows us to intercept requests between ourselves and the target?
Proxy
- Which Burp tool would we use to brute-force a login form?
Intruder
Installation
⬇️ Download
- Unduh versi terbaru Burp Suite dari halaman resmi PortSwigger
- Pilih Burp Suite Community Edition
- Tersedia installer untuk Linux, macOS, dan Windows
🐉 Kali Linux
- Burp Suite sudah ter-install secara default
- Jika belum ada, instal melalui repository:
sudo apt install burpsuite
⚙️ Instalasi
- Windows: jalankan file
.exe - Linux: jalankan script installer melalui terminal (dengan atau tanpa
sudo)- Tanpa
sudo→ terinstal di:~/BurpSuiteCommunity/BurpSuiteCommunity - Tidak otomatis masuk ke
PATH
- Tanpa
The Dashboard
⚙️ Konfigurasi Awal Burp Suite
- Jalankan Burp Suite dan setujui terms and conditions
- Pilih Project Type
- Pada Community Edition, langsung klik Next
- Pilih Configuration
- Disarankan menggunakan pengaturan default
- Klik Start Burp untuk masuk ke antarmuka utama
📘 Tampilan Awal
- Saat pertama kali dibuka, mungkin muncul layar training
- Sangat disarankan untuk dipelajari
- Jika tidak muncul, Anda akan langsung melihat Burp Dashboard
- Awalnya terlihat kompleks, namun akan terbiasa seiring penggunaan
🧭 Burp Dashboard
Dashboard dibagi menjadi 4 bagian (quadrant):

1️⃣ Tasks
- Menentukan tugas latar belakang Burp
- Di Community Edition, Live Passive Crawl sudah cukup
- Professional Edition mendukung on-demand scan
2️⃣ Event Log
- Menampilkan aktivitas Burp Suite
- Contoh: status proxy, koneksi yang terjadi
3️⃣ Issue Activity (Professional Only)
- Menampilkan kerentanan hasil automated scanner
- Disusun berdasarkan tingkat keparahan
4️⃣ Advisory (Professional Only)
- Detail kerentanan, referensi, dan rekomendasi perbaikan
- Bisa diekspor menjadi laporan
- Di Community Edition, biasanya tidak ada data
❓ Ikon Bantuan
- Terdapat ikon tanda tanya (?) di berbagai menu
- Klik ikon ini untuk membuka penjelasan fitur terkait
- Sangat membantu saat mempelajari Burp Suite
- What menu provides information about the actions performed by Burp Suite, such as starting the proxy, and details about connections made through Burp?
Event Log
Navigation
Navigasi utama di Burp Suite dilakukan melalui menu bar bagian atas.
🔹 Modul
- Baris menu paling atas menampilkan modul-modul Burp Suite
- Klik modul untuk berpindah (misalnya Proxy)

🔹 Sub-Tab
- Jika modul memiliki beberapa tab, sub-tab muncul di baris menu kedua
- Contoh: Proxy → Intercept
🔹 Detach Tab
- Tab bisa dipisahkan ke jendela terpisah
- Menu: Window → Detach
- Bisa digabung kembali dengan cara yang sama

⌨️ Shortcut Penting
| Shortcut | Tab |
|---|---|
| Ctrl + Shift + D | Dashboard |
| Ctrl + Shift + T | Target |
| Ctrl + Shift + P | Proxy |
| Ctrl + Shift + I | Intruder |
| Ctrl + Shift + R | Repeater |
- Which tab Ctrl + Shift + P will switch us to?
Proxy Tab
Options
Sebelum menggunakan Burp Proxy, pahami dulu jenis pengaturan di Burp Suite. Terdapat dua jenis settings:
1️⃣ Global Settings (User Settings)
- Berlaku untuk seluruh instalasi Burp Suite
- Aktif setiap kali Burp dijalankan
- Menjadi konfigurasi dasar lingkungan Burp
2️⃣ Project Settings
- Berlaku hanya untuk project yang sedang dibuka
- ⚠️ Pada Burp Suite Community, project tidak bisa disimpan
- Semua pengaturan project akan hilang saat Burp ditutup
🔧 Mengakses Settings
- Klik tombol Settings di navigation bar atas
- Akan terbuka jendela settings terpisah

🗂️ Menu di Settings
Di panel kiri tersedia:
- Search → cari pengaturan dengan kata kunci
- Type filter → filter User / Project settings
- User settings → pengaturan global
- Project settings → pengaturan project aktif
- Categories → pilih berdasarkan kategori
proxy settings

- In which category can you find a reference to a "Cookie jar"?
Sessions

- In which base category can you find the "Updates" sub-category, which controls the Burp Suite update behaviour?
- If your answer to this question is "Misc", then you are using an outdated version of Burp Suite. Update to the latest version, then search for the answer in the settings window.
Suite
- What is the name of the sub-category which allows you to change the keybindings for shortcuts in Burp Suite?
HotKeys

- If we have uploaded Client-Side TLS certificates, can we override these on a per-project basis (yea/nay)?
- Search for "Client TLS Certificates", then look at the scopes provided to the right of the section heading.
yea
Introduction to the Burp Proxy
Burp Proxy adalah komponen paling fundamental dan krusial dalam Burp Suite. Fungsinya untuk menangkap (capture) request dan response antara pengguna dan web server target. Traffic yang ditangkap dapat:
- Dimodifikasi
- Dikirim ke modul Burp lain
- Diteruskan atau dihentikan secara manual
🔑 Konsep Penting Burp Proxy
1️⃣ Intercepting Requests
- Request yang melewati proxy akan ditahan sebelum sampai ke server
- Muncul di tab Proxy
- Bisa:
- Forward
- Drop
- Edit
- Kirim ke modul lain (Repeater, Intruder, dll)
- Untuk melewati proxy tanpa ditahan, klik Intercept is on (nonaktifkan)

2️⃣ Kontrol Penuh Traffic
- Intersepsi request memberi kendali penuh atas lalu lintas web
- Sangat penting untuk pengujian keamanan aplikasi web
3️⃣ Capture & Logging
- Semua request tetap dicatat (logged) meskipun intercept dimatikan
- Berguna untuk analisis dan review di kemudian hari
4️⃣ Dukungan WebSocket
- Burp Suite juga menangkap & mencatat komunikasi WebSocket
- Membantu analisis aplikasi web modern
5️⃣ Log & History
- Request dapat dilihat di:
- HTTP history
- WebSockets history
- Request dari history bisa dikirim ke modul Burp lainnya

⚙️ Proxy Settings
Akses melalui tombol Proxy settings untuk mengatur perilaku proxy.
🔸 Fitur Penting Proxy Settings
🔁 Response Interception
-
Secara default, response tidak di-intercept
-
Opsi Intercept responses based on the following rules
- Mengizinkan intersepsi response berdasarkan aturan tertentu

🔄 Match and Replace
- Menggunakan regex untuk memodifikasi request & response
- Contoh penggunaan:
- Mengubah User-Agent
- Memanipulasi Cookie
Connecting through the Proxy (FoxyProxy)
Untuk menggunakan Burp Suite Proxy, browser harus diarahkan melalui Burp.
⚠️ Panduan ini khusus Firefox AttackBox: FoxyProxy sudah terpasang
⚙️ Langkah Konfigurasi
1️⃣ Install FoxyProxy
- Pasang FoxyProxy Basic
- (Lewati jika pakai AttackBox)
2️⃣ Buat Konfigurasi Proxy
- Klik ikon FoxyProxy → Options
- Klik Add
- Isi:
- Title: Burp
- Proxy IP:
127.0.0.1 - Port:
8080
- Klik Save
3️⃣ Aktifkan Proxy
- Klik ikon FoxyProxy
- Pilih Burp
- ⚠️ Burp Suite harus berjalan
🔀 Intercept Request
- Buka Burp Suite → Proxy
- Pastikan Intercept = ON
- Buka website target (contoh:
http://10.49.184.127/) - Browser akan hang → request muncul di Burp ✅
Site Map and Issue Definitions
Tab Target tidak hanya untuk mengatur scope, tetapi memiliki 3 sub-tab utama:
1️⃣ Site Map
- Menampilkan struktur aplikasi web dalam bentuk tree
- Semua halaman yang dikunjungi saat proxy aktif akan otomatis tercatat
- Berguna untuk:
- Enumerasi awal
- Mapping endpoint & API
- Endpoint API yang diakses aplikasi akan otomatis muncul di sini
2️⃣ Issue Definitions
- Daftar lengkap jenis kerentanan web
- Berisi deskripsi & referensi
- Berguna sebagai referensi laporan atau saat analisis manual
- Tersedia meskipun tanpa scanner otomatis (Community Edition)
3️⃣ Scope Settings
- Mengatur target scope
- Bisa include / exclude domain atau IP
- Membantu fokus ke target dan menghindari traffic tidak relevan
✅ Kesimpulan
Target tab membantu untuk:
- Memetakan aplikasi web
- Mengatur scope pengujian
- Referensi kerentanan web
🧪 Challenge
- Kunjungi semua link di http://10.49.184.127/
- Cek Site Map
- Cari satu endpoint yang terlihat tidak biasa
- Akses endpoint tersebut lewat browser atau Response di Site Map


- What is the flag you receive after visiting the unusual endpoint?
- You are looking for a suspicious page with a name made up of a series of random letters and numbers.What is the flag you receive after visiting the unusual endpoint?
THM{NmNlZTliNGE1MWU1ZTQzMzgzNmFiNWVk}
The Burp Suite Browser
Burp Suite menyediakan browser Chromium bawaan yang sudah otomatis terhubung ke proxy, tanpa perlu konfigurasi manual seperti FoxyProxy.
▶️ Cara Menjalankan
- Buka Proxy tab
- Klik Open Browser
- Browser Chromium akan terbuka
- Semua request otomatis lewat Burp Proxy
⚙️ Pengaturan
- Tersedia berbagai opsi Burp Browser di:
- User Settings
- Project Settings
- Disarankan untuk mengeksplorasi sesuai kebutuhan
🐧 Masalah di Linux (Root User)
Jika Burp dijalankan sebagai root (misalnya di AttackBox), Burp Browser bisa gagal berjalan karena sandbox error.
Solusi:
1️⃣ Smart (Aman)
- Jalankan Burp sebagai user non-root
2️⃣ Easy (Cepat)
- Masuk: Settings → Tools → Burp’s browser
- Aktifkan Allow Burp’s browser to run without a sandbox
- ⚠️ Kurang aman, gunakan dengan hati-hati
Scoping and Targeting
Scoping adalah salah satu aspek paling penting saat menggunakan Burp Proxy. Tanpa scope, traffic yang tertangkap bisa sangat banyak dan tidak relevan.
🔍 Fungsi Scoping
- Membatasi traffic yang:
- Di-proxy
- Di-log
- Fokus hanya pada aplikasi web target
- Menghindari noise dari domain lain
⚙️ Cara Menambahkan Scope
- Buka tab Target
- Klik kanan target di panel kiri
- Pilih Add to Scope
- Pilih Yes untuk menghentikan logging traffic di luar scope
🗂️ Cek & Atur Scope
- Masuk ke Target → Scope settings
- Bisa:
- Include domain / IP
- Exclude domain / IP
- Sangat powerful → disarankan dipelajari
🚫 Batasi Intercept Proxy
Meskipun logging di luar scope dimatikan, proxy tetap meng-intercept semua traffic secara default.
Solusi:
- Buka Proxy → Proxy settings
- Pada Intercept Client Requests
- Aktifkan: And URL is in target scope

Proxying HTTPS
Saat intercept HTTPS, browser bisa menolak koneksi karena sertifikat Burp (PortSwigger CA) tidak dipercaya.
⚠️ AttackBox sudah terkonfigurasi, langkah ini bisa dilewati jika pakai AttackBox.
⚙️ Langkah Singkat (Firefox)
1️⃣ Download Sertifikat
- Aktifkan Burp Proxy
- Buka:
http://burp/cert - Simpan file cacert.der
2️⃣ Import Sertifikat
- Buka
about:preferences - Cari certificates → View Certificates
- Klik Import → pilih cacert.der

3️⃣ Trust Sertifikat
- Centang Trust this CA to identify websites
- Klik OK

✅ Hasil
- Browser sekarang mempercayai PortSwigger CA
- HTTPS bisa diakses tanpa error saat lewat Burp Proxy
Example Attack
Kita akan mencoba Reflected XSS pada form support:
👉 http://10.49.184.127/ticket/
XSS (Cross-Site Scripting) adalah teknik menyisipkan script (biasanya JavaScript) agar dieksekusi di browser korban. Contoh ini adalah Reflected XSS → hanya berdampak pada request yang dikirim.
🚧 Masalah Awal
- Field Contact Email punya client-side filter
- Karakter berbahaya (seperti
< > ") diblokir - ❗ Client-side filter mudah dibypass
🔀 Langkah Bypass dengan Burp Proxy
1️⃣ Aktifkan Burp Proxy
- Pastikan Intercept = ON
2️⃣ Isi form dengan data normal
- Email:
pentester@example.thm - Query:
Test Attack - Submit form → request tertahan di Burp
3️⃣ Modifikasi request di Burp
- Ganti nilai email dengan payload:
<script>alert("Succ3ssful XSS")</script> - Blok payload → tekan
Ctrl + U(URL Encode)
4️⃣ Forward request
- Klik Forward
✅ Hasil
- Muncul alert box di browser
- 🎉 Reflected XSS berhasil dieksekusi