Programming

Overview

Many CTF challenges will require players to write code to perform some task. For example, a script might be needed to identify whether a string is a palindrome 200 times (Nursesrun, @patrixia). More difficult challenges may require you to develop scripts to bruteforce a password, remote into a system, or even pilot a ship in battle! Most challenges can be automated, and the best CTF players will provide their solutions to challenges as scripts for others to learn from.

Like learning Linux, the only way to learn to program is to program. Remember, there are whole courses dedicated to learning the topics presented here, so make sure to take time to practice regularly. Check out some of the learning resources below, then don't be afraid to break out your programming skills while playing!

Learning Resources

Python is a great programming language with an easier learning curve than some other languages. It is the language of choice for lots of CTF players.

A great hands-on tutorial for learning Python 2, all in your browser! Unfortunately, the Python 3 course is not free, but most of the differences are easy to pick up.

Other useful codecademy tutorials:

While not as beginner friendly as Python, having a solid understanding of C and Assembly is essential for many challenge categories, include reverse engineering and pwning.

Tools

A CTF framework for Python 2.7, it has many useful functions for CTF players, such as easy process management, networking, and exploit crafting. Use it to automate your exploits!