In this second module we will dive into data handling, web communication, and SQL basics.
Computer software communicates with each other by exchanging variously-formatted data via various communication channels. Learning about this concurrently with learning about security concepts can be overwhelming, and thus, this module tries to prepare you for the latter by covering the former.
In this module, you will learn the different ways data is reasoned about by programs. In the future, this will help you carefully craft that data to break the recipient program's security!
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:
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.
Modern society runs on the internet, and the internet runs on databases. Databases hold massive amounts of data on everything from your pwn.college scores (yes, we have a database!) to all of Wikipedia to less important things such as your credit score. If you can describe it, it exists in a database somewhere.
Databases come in all shapes and sizes, but arguably the most common ones, and definitely the most traditional ones, store data entries in structured tables.
These Structured tables can be Queried using a specialized Languaged called the Structued Query Language, or SQL (typically pronounced like "sequel").
The (mis)use of SQL leads to all sorts of potential security issues, as we'll explore later on this platform. For now, this module will teach you (or, rather, force you to learn) SQL through a series of challenges that will expose you to the parts of the language that will become relevant later.
Welcome to the SQL playground.