How The Web Works
DNS in Detail
- What does DNS stand for?
Domain Name System
- What is the maximum length of a subdomain?
63
- Which of the following characters cannot be used in a subdomain ( 3 b _ - )?
_
- What is the maximum length of a domain name?
253
Type TLD
-
ccTLD -> Country Code Top Level Domain
-
gTLD -> Generic Top Level Domain
-
sTLD -> Sponsored Top Level Domain
-
What type of TLD is .co.uk?
ccTLD
List Record Types DNS
-
A -> Address Record (IPv4) -> berfungsi untuk memetakan nama domain ke alamat IPv4.
-
AAAA -> Address Record (IPv6) -> berfungsi untuk memetakan nama domain ke alamat IPv6.
-
CNAME -> Canonical Name Record (Alias) -> berfungsi untuk mengarahkan satu nama domain ke nama domain lainnya.
-
MX -> Mail Exchange Record -> berfungsi untuk menentukan server email yang bertanggung jawab untuk menerima email atas nama domain tersebut.
-
TXT -> Text Record -> berfungsi untuk menyimpan informasi teks yang dapat digunakan untuk berbagai tujuan, seperti verifikasi domain dan kebijakan email.
-
NS -> Name Server Record -> berfungsi untuk menentukan server DNS yang bertanggung jawab untuk domain tertentu.
-
SOA -> Start of Authority Record -> berfungsi untuk menyimpan informasi penting tentang domain, seperti server utama, email administrator, dan parameter zona DNS.
-
PTR -> Pointer Record -> berfungsi untuk memetakan alamat IP ke nama domain (reverse DNS lookup).
-
What type of record would be used to advise where to send email?
MX
- What type of record handles IPv6 addresses?
AAAA

bagaimana cara kerja DNS?
- Saat kamu mengakses domain, komputer akan cek cache lokal dulu.
- Jika tidak ada, permintaan dikirim ke Recursive DNS (biasanya dari ISP).
- Jika masih tidak ketemu, DNS akan bertanya ke root server internet.
- Root server mengarahkan ke TLD server (.com, .org, dll), lalu ke authoritative server.
- Hasilnya dikirim balik dan disimpan sementara sesuai TTL agar akses lebih cepat.
-
TTL -> Time To Live -> merupakan nilai yang menentukan berapa lama sebuah catatan DNS dapat disimpan dalam cache oleh resolver DNS sebelum harus diperbarui dari server DNS asalnya.
-
What field specifies how long a DNS record should be cached for?
TTL
- What type of DNS Server is usually provided by your ISP?
recursive
- What type of server holds all the records for a domain?
authoritative
- What is the CNAME of shop.website.thm?
shops.myshopify.com
- What is the value of the TXT record of website.thm?
THM{7012BBA60997F35A9516C2E16D2944FF}
- What is the numerical priority value for the MX record?
30
- What is the IP address for the A record of www.website.thm?
10.10.10.10
HTTP in Detail
HTTP vs HTTPS
HTTP -> HyperText Transfer Protocol -> protokol yang digunakan untuk mentransfer data di web. HTTPS -> HyperText Transfer Protocol Secure -> versi aman dari HTTP yang menggunakan enkripsi SSL/TLS untuk melindungi data yang ditransfer antara klien dan server.
- What does HTTP stand for?
Hyper Text Transfer Protocol
- What does the S in HTTPS stand for?
Secure
- On the mock webpage on the right there is an issue, once you've found it, click on it. What is the challenge flag?
THM{INVALID_HTTP_CERT}
URL Structure
URL -> Uniform Resource Locator -> alamat lengkap yang digunakan untuk mengakses sumber daya di web.

Scheme -> menunjukkan protokol yang digunakan (http, https, ftp, dll). User -> opsional, digunakan untuk otentikasi (username:password). Host -> nama domain atau alamat IP server. Port -> nomor port yang digunakan untuk mengakses layanan di server. Path -> jalur menuju sumber daya di server. Query -> parameter tambahan yang dikirim ke server. Fragment / Anchor -> bagian tertentu dari sumber daya yang diakses.
- What HTTP protocol is being used in the above example?
http/1.1
- What response header tells the browser how much data to expect?
Content-Length
HTTP Methods
merupakan perintah yang digunakan dalam permintaan HTTP untuk menentukan tindakan yang diinginkan pada sumber
HTTP Methods -> metode yang digunakan untuk berinteraksi dengan sumber daya di web.
- GET -> mengambil data dari server.
- POST -> mengirim data ke server untuk diproses.
- PUT -> memperbarui data di server.
- DELETE -> menghapus data di server.
Opsional HTTP Methods
-
HEAD -> mengambil header dari sumber daya tanpa isi.
-
OPTIONS -> mengambil metode HTTP yang didukung oleh server untuk sumber daya tertentu.
-
PATCH -> memperbarui sebagian data di server.
-
TRACE -> melacak jalur permintaan ke server.
-
CONNECT -> membuat koneksi jaringan ke server.
-
What method would be used to create a new user account?
POST
- What method would be used to update your email address?
PUT
- What method would be used to remove a picture you've uploaded to your account?
DELETE
- What method would be used to view a news article?
HTTP Status Codes
merupakan kode yang dikirim oleh server untuk memberi tahu klien tentang hasil permintaan HTTP.
List of HTTP Status Codes
-
1xx -> Informational -> kode ini menunjukkan bahwa permintaan telah diterima dan sedang diproses.
-
2xx -> Success -> kode ini menunjukkan bahwa permintaan telah berhasil diproses.
- 200 -> OK -> kode ini menunjukkan bahwa permintaan telah berhasil dan server mengirimkan data yang diminta.
- 201 -> Created -> kode ini menunjukkan bahwa permintaan telah berhasil dan sumber daya baru telah dibuat.
-
3xx -> Redirection -> kode ini menunjukkan bahwa klien perlu mengambil tindakan tambahan untuk menyelesaikan permintaan.
- 301 -> Moved Permanently -> kode ini menunjukkan bahwa sumber daya telah dipindahkan secara permanen ke URL baru.
- 302 -> Found -> kode ini menunjukkan bahwa sumber daya sementara dipindahkan ke URL baru.
-
4xx -> Client Error -> kode ini menunjukkan bahwa ada kesalahan pada sisi klien, seperti permintaan yang tidak valid atau sumber daya yang tidak ditemukan.
- 401 -> Unauthorized -> kode ini menunjukkan bahwa klien perlu melakukan otentikasi untuk mengakses sumber daya yang diminta.
- 404 -> Not Found -> kode ini menunjukkan bahwa sumber daya yang diminta tidak ditemukan di server.
- 403 -> Forbidden -> kode ini menunjukkan bahwa klien tidak memiliki izin untuk mengakses sumber daya yang diminta.
-
5xx -> Server Error -> kode ini menunjukkan bahwa ada kesalahan pada sisi server saat memproses permintaan.
- 500 -> Internal Server Error -> kode ini menunjukkan bahwa server mengalami kesalahan internal saat memproses permintaan.
- 503 -> Service Unavailable -> kode ini menunjukkan bahwa server tidak tersedia untuk memproses permintaan saat ini.
-
What response code might you receive if you've created a new user or blog post article?
201
- What response code might you receive if you've tried to access a page that doesn't exist?
404
- What response code might you receive if the web server cannot access its database and the application crashes?
503
- What response code might you receive if you try to edit your profile without logging in first?
401
Headers
merupakan informasi tambahan yang dikirim bersama permintaan atau respons HTTP.
List Common HTTP Request Headers
- Host -> menentukan nama domain server yang dituju.
- User-Agent -> mengidentifikasi perangkat lunak klien yang digunakan untuk mengakses server.
- Content-Type -> menentukan jenis konten yang dikirim oleh klien atau server.
- Content-Length -> menentukan ukuran konten yang dikirim oleh klien atau server.
- Accept-Encoding -> menentukan jenis encoding yang dapat diterima oleh klien.
- Cookie -> menyimpan data sesi atau preferensi pengguna.
List Common HTTP Response Headers
-
Set-Cookie -> mengirim cookie dari server ke klien.
-
Cache-Control -> mengontrol cara caching dilakukan oleh klien atau server.
-
Content-Type -> menentukan jenis konten yang dikirim oleh server.
-
Content-Encoding -> menentukan jenis encoding yang digunakan oleh server.
-
What header tells the web server what browser is being used?
User-Agent
- What header tells the browser what type of data is being returned?
Content-Type
- What header tells the web server which website is being requested?
Host
Cookies
merupakan data kecil yang disimpan di browser klien untuk menyimpan informasi sesi atau preferensi pengguna.

- Which header is used to save cookies to your computer?
Set-Cookie
- Make a GET request to /room page
THM{YOU'RE_IN_THE_ROOM}
- Make a GET request to /blog page and set the id parameter to 1
THM{YOU_FOUND_THE_BLOG}
- Make a DELETE request to /user/1 page
THM{USER_IS_DELETED}
- Make a PUT request to /user/2 page with the username parameter set to admin
THM{USER_HAS_UPDATED}
- Make a POST request to /login page with the username of thm and a password of letmein
THM{HTTP_REQUEST_MASTER}
How Websites Work
Front End -> bagian dari website yang berinteraksi langsung dengan pengguna, seperti tampilan antarmuka, desain, dan elemen visual lainnya. Biasanya dibangun menggunakan HTML, CSS, dan JavaScript. Back End -> bagian dari website yang menangani logika bisnis, pengelolaan data, dan interaksi dengan server. Biasanya dibangun menggunakan bahasa pemrograman seperti Python, Ruby, PHP, atau JavaScript (Node.js), serta database seperti MySQL, PostgreSQL, atau MongoDB.
- What term best describes the component of a web application rendered by your browser?
Front End
- One of the images on the cat website is broken - fix it, and the image will reveal the hidden text answer!
HTMLHERO
- Add a dog image to the page by adding another img tag () on line 11. The dog image location is img/dog-1.png. What is the text in the dog image?
DOGHTML
- Click the "View Site" button on this task. On the right-hand side, add JavaScript that changes the demo element's content to "Hack the Planet"
JSISFUN
- View the website on this link. What is the password hidden in the source code?
testpasswd
- View the website on this task and inject HTML so that a malicious link to http://hacker.com is shown.
HTML_INJ3CTI0N
Putting it all together
-
Load Balancer -> perangkat atau layanan yang mendistribusikan lalu lintas jaringan atau permintaan aplikasi di beberapa server untuk memastikan kinerja, keandalan, dan ketersediaan yang optimal.
- Mendukung high availability dan failover
- Algoritma umum: round-robin, weighted
- Melakukan health check untuk memastikan server aktif
-
CDN (Content Delivery Network) -> jaringan server yang didistribusikan secara geografis yang bekerja sama untuk menyediakan konten web dengan cepat kepada pengguna berdasarkan lokasi geografis mereka.
-
Database Server -> server yang menyimpan, mengelola, dan menyediakan akses ke database.
-
Web Application Firewall (WAF) -> firewall yang dirancang khusus untuk melindungi aplikasi web dengan memantau, menyaring, dan memblokir lalu lintas HTTP berbahaya yang ditujukan untuk aplikasi web.
-
What can be used to host static files and speed up a clients visit to a website?
CDN
- What does a load balancer perform to make sure a host is still alive?
health check
- What can be used to help against the hacking of a website?
WAF
-
Web Server -> server yang bertanggung jawab untuk menerima, memproses, dan merespons permintaan HTTP dari klien (biasanya browser web).
- Contoh: Apache, Nginx, IIS, LiteSpeed
- Linux: /var/www/html
- Windows: C:\inetpub\wwwroot
-
Virtual Hosts -> satu server fisik yang dapat menghosting beberapa situs web atau domain secara bersamaan.
-
Static Content -> konten web yang tidak berubah atau diperbarui secara dinamis, seperti gambar, file CSS, dan file JavaScript.
-
dynamic content -> konten web yang dihasilkan secara real-time berdasarkan permintaan pengguna atau data yang berubah, seperti halaman web yang dihasilkan dari database atau aplikasi web.
-
What does web server software use to host multiple sites?
Virtual Hosts
- What is the name for the type of content that can change?
Dynamic
- Does the client see the backend code? Yay/Nay
Nay

- The Quiz
THM{YOU_GOT_THE_ORDER}