A CTF (Capture-The-Flag) is a competition that involves a variety of different computer skills. The problems are divided into several types of categories such as:
MetaCTF aims to create a Capture the Flag competition that challenges and encourages high school students to learn new techniques and concepts in different Computer Science and Cybersecurity areas such as cryptography, web exploitation, reverse engineering, and programming in a safe, dedicated environment. Our goal is to spark students' interest in cybersecurity through hands on experience that involves solving problems of different levels of difficulty involving these topics. MetaCTF challenges students to think outside the box and apply their logical skills, and inspires them to further pursue a career in the field.
Answers to problems are called "flags." This is usually obtained by cracking the cipher, pwning the application, etc. The whole goal in CTFs is to find the flag. Finding the flag is akin to getting a balloon in a programming competition.
Recon Problems deal with searching the web to track down someone or some piece of information. You will want to get the information using a variety of search tools like Google. You may also want to check out one's social network accounts, personal websites, and more.
Whether you are a programmer looking for a solution or a network administrator tracking down the person that hacked your system, it is important to know how to find things on the internet. Often times, you will need to take several bits of info scattered all over and put them together to form a complete picture. It's almost like putting together a puzzle where all the pieces are scattered all over your house. This is where Recon comes in.
Cryptography is defined as "a method of storing and transmitting data in a particular form so that only those for whom it is intended can read and process it." The term is most often associated with scrambling plaintext (ordinary text, sometimes referred to as cleartext) into ciphertext (through a process called encryption), then back again (known as decryption). Cryptography problems will contain different encryption algorithms and codes. You will be asked to reverse them.
Cryptography is a fundamental part of computers. Everything you do online is encrypted (*hopefully*). When you visit https;//google.com, your search strings are encrypted. When you plug in your password on a website, it is transformed into a hash to be safely stored (*hopefully*). Understanding how security is implemented through different ciphers and encryption algorithms is key, especially when you are tasked with building a secure website, put in charge of a network, or just browsing the internet normally.
Web Exploitation is when one searches for vulnerabilities in a system and takes advantage of them. You may have to understand how a web-app works to see where it gets the information from and why is does what it does.
Reverse Engineering problems deal with finding bugs within code/programs and also taking apart programs to figure out exactly what they do. Thus, you can reverse them to retrieve information.
Being able to break apart something in general is a good skill. In CS, it may help you to understand the code behind an application. This happens fairly often in the real world especially when trying to figure out how your uncommented code from last year works.
Programming Problems will require you to write some type of code to solve a problem (or make it easier to solve). Programming involves creating algorithms to solve the problems in an efficient way.
In many cases, programming can simplify your tasks by putting a computer to work. Whether you prefer Python, Java, or Assembly (Don't deny it), programming is really about being able to take a very complicated problem, and break it down piece by piece. From that, you can accomplish the task much easier.
The Other category will contain miscellaneous network security and computer related topics. For example, they may include steganography. We tried to match all categories correctly, but it may seem different for everyone.
In computer science field, you need to stay well rounded. With it changing and evolving daily in ways we never thought possible, one needs to know how to adapt.