Below are a few concepts which will prepare you for our competition next week.
Even if you are testing unreleased programs written in unfamiliar languages, there are publicly known vulnerabilities about the application’s dependencies. This documentation can be found easily with a search engine.
Bugs appear when users interact with the system in unexpected or unconventional ways. Modern web browsers such as Chrome have safeguards to prevent it from being used to hack. Security researchers often resort to using other kinds of software that’s more basic in funcitonality yet more advanced in usage.
wget can be used to download and save a file.
curl retrieves remote files and dumps the response to standard output.
It is standard for UNIX systems to create archieves and compress files using
gunzip (instead of creating
.zip files like they do on Windows).
This command is used to inflate “tarballs”:
tar xvf archive.tar
Computer Ports (Networking)
A port is a virtual interface used by the operating system as an endpoint of communication. Specific services/applications listen to defined port numbers. For example, the default port for HTTP is port 80. So, when requesting a webpage, the browser connects with the server on TCP port 80.
Port scans can be used against servers to detect entry points.
UNIX File Descriptors
There are three basic handles that an executed program can recieve input and output (I/O) from.
|0||Standard input||keystrokes from terminal|
|1||Standard output||terminal output|
|2||Standard error||terminal output|
Using pipes, you can chain program execuation by redirecting output to the input of a second program.
curl https://itiswednesdaymydudes.com | lolcat
wget retrieves remote content and dumps it to standard output. Standard output is piped to the input of
lolcat accepts input and then prints it back out in a rainbow gradient.
If anyone’s interested, here’s the lecture I referenced during my “say no to drugs” story: