Client: Any program that requests data (your browser, curl, an app)
Server: A program that waits for requests and sends back responses
When you type a URL in your browser:
Your browser (client) sends a request to a server
The server processes the request
The server sends back a response (usually a web page)
π§ The Tool: curl
curl is a command-line tool that lets you make HTTP requests. Think of it as a text-based web browser.
Basic syntax:
curl http://example.com
This sends a GET request to example.com and prints the response.
π Your Challenge
A server is running and waiting for your request. Use curl to make a GET request and retrieve the flag!
curl http://challenge/
Good luck! π
Connect with SSH
Link your SSH key, then connect with: ssh hacker@dojo.idg.ctf
Request & Response
π― What You'll Learn
The structure of HTTP requests and responses
HTTP headers and status codes
Using curl -v to see the full conversation
π The Concept
Every HTTP conversation has two parts: the request and the response.
HTTP Request Structure
GET /path HTTP/1.1 β Request line (method, path, version)
Host: example.com β Headers (metadata)
User-Agent: curl/7.68.0
Accept: */*
β Empty line
[optional body] β Request body (for POST, PUT, etc.)
HTTP Response Structure
HTTP/1.1 200 OK β Status line (version, code, message)
Content-Type: text/html β Headers
Content-Length: 1234
β Empty line
<html>...</html> β Response body
Common Status Codes
200 OK - Success!
404 Not Found - Resource doesn't exist
500 Internal Server Error - Server had a problem
π§ Using curl -v (verbose)
To see the full request/response conversation:
curl -v http://example.com
Lines starting with > are what you SENT (request)
Lines starting with < are what you RECEIVED (response)
π Your Challenge
The server will only give you the flag if you prove you understand HTTP.
Use curl -v to make a request and find a secret header in the response. Then make another request including that header name as a query parameter.
Step 1: See all headers
curl -v http://challenge/
Step 2: Find the secret header in the response (look for X-Secret-Header)
Link your SSH key, then connect with: ssh hacker@dojo.idg.ctf
Server Ports
π― What You'll Learn
What ports are and why they exist
Common port numbers
How to connect to different ports
π The Concept
A server computer can run many services at once. How does it know which service you want to talk to? Ports!
Think of it like an apartment building:
The IP address is the building's street address
The port is the apartment number
βββββββββββββββββββββββββββββββββββββββ
β Server (192.168.1.1) β
βββββββββββ¬ββββββββββ¬ββββββββββββββββββ€
β Port 80 β Port 443β Port 22 β
β HTTP β HTTPS β SSH β
β (web) β(secure) β(remote login) β
βββββββββββ΄ββββββββββ΄ββββββββββββββββββ
Common Ports
Port
Service
Description
80
HTTP
Standard web traffic
443
HTTPS
Secure web traffic
22
SSH
Secure shell (remote login)
21
FTP
File transfer
3306
MySQL
Database
Specifying Ports in URLs
http://example.com β Port 80 (default for http)
http://example.com:8080 β Port 8080 (explicitly stated)
https://example.com β Port 443 (default for https)
π Your Challenge
The flag is split across THREE different servers running on different ports!