pwncollege
DojosLeaderboardCommunity
Back to fundamentals

Talking Web

fundamentals
0/36 challenges completed

HTTP (Hypertext Transfer Protocol) is the lingua franca of the open Internet: the common tongue through which web applications, servers, and clients communicate. This module delves deep into the intricate skills of crafting, decoding, and manipulating HTTP requests and responses. By the end of this journey, you won't be solely reliant on your web browser to make HTTP requests on your behalf. You'll master the skills to speak directly with web servers, opening a new world of potential.

You will learn about:

  • Headers: Metadata fields that carry vital information about the request or response.
  • Paths: The specific locations or resources you're aiming to access.
  • Arguments: Data points that can alter or dictate the behavior of your request.
  • Form Data: Data transferred from web forms.
  • JSON: A popular data interchange format that's lightweight and human-readable.
  • Cookies: Small data fragments stored on the user's computer, crucial for session management and tracking.
  • Redirects: Methods web services use to direct your browser from one location to another.

As you push through these challenges, you won't be hacking blind:

hacker@talking-web-level-1:~$ /challenge/run
* Serving Flask app 'run'
* Debug mode: off
WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead.
* Running on http://challenge.localhost:80
Press CTRL+C to quit

This output, made available through the challenge, directs you into the core of the web server's activities. Don't ignore it: the server's responses are often hints, meant to nudge you towards the right path when it is unclear.

Talking Web: Introduction
Video
Slides
Talking Web: The Internet
Video
Slides
Talking Web: RFC 1945
Video
Slides
Talking Web: URLs and Encoding
Video
Slides
Talking Web: State
Video
Slides
Talking Web: Making HTTP Requests
Video
Documentation

Challenges

1
Your First HTTP Request
2
Reading Flask
3
Commented Data
4
HTTP Metadata
5
HTTP (netcat)
6
HTTP Paths (netcat)
7
HTTP (curl)
8
HTTP (python)
9
HTTP Host Header (python)
10
HTTP Host Header (curl)
11
HTTP Host Header (netcat)
12
URL Encoding (netcat)
13
HTTP GET Parameters
14
Multiple HTTP Parameters (netcat)
15
Multiple HTTP Parameters (curl)
16
HTTP Forms
17
HTTP Forms (curl)
18
HTTP Forms (netcat)
19
HTTP Forms (python)
20
HTTP Forms Without Forms
21
Multiple Form Fields (curl)
22
Multiple Form Fields (netcat)
23
HTTP Redirects (netcat)
24
HTTP Redirects (curl)
25
HTTP Redirects (python)
26
HTTP Cookies (curl)
27
HTTP Cookies (netcat)
28
HTTP Cookies (python)
29
Server State (python)
30
Listening Web
31
Speaking Redirects
32
JavaScript Redirects
33
Including JavaScript
34
HTTP (javascript)
35
HTTP Get Parameters (javascript)
36
HTTP Forms (javascript)