Below are a few concepts which will prepare you for our competition next week.

Dependencies

Dependency composition

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.

OWASP Top 10 - 2017

Hacker’s Toolkit

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 tar and 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)

https://en.wikipedia.org/wiki/Port_(computer_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.

https://github.com/twlinux/club/wiki/nmap#port-scan

Password Storage

[YouTube] How NOT to Store Passwords! - Computerphile

UNIX File Descriptors

https://en.wikipedia.org/wiki/File_descriptor

There are three basic handles that an executed program can recieve input and output (I/O) from.

Integer Value Name Default
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.

https://github.com/twlinux/club/wiki/Shell-scripting#pipes-io-redirection-and-basic-logic

For example:

curl https://itiswednesdaymydudes.com | lolcat

Screenshot

wget retrieves remote content and dumps it to standard output. Standard output is piped to the input of lolcat. 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:

[Youtube] AppSecUSA 2016 - Keynote - Sammy Kamkar - The Less Hacked Path