Fuzzing


aturt13 Dojo.

Identifying vulnerabilities in large codebases through manual means is both inefficient and time-consuming. As code length increases, complex interdependent elements hinder manual analysis. Race conditions and intricate heap corruption vulnerabilities can be oftentimes triggered only by a very complex sequence of actions. As human minds struggle to manually assess vast amounts of data, we can leverage computers and algorithms to do the hard work for us.

You might want to add the following to your shell init file:

export AFL_I_DONT_CARE_ABOUT_MISSING_CRASHES=1
export AFL_SKIP_CPUFREQ=1


Challenges

Leverage afl-fuzz and afl-clang-fast to find an input that causes the program to crash. You have the source code available.

Exploit the binary.

Use afl-fuzz with dictionaries to cause the program to crash.

Exploit the binary.

Let's see how you cope with a fuzzing-unfriendly program.

Exploit the binary.

What if you don't have source code?

Exploit the binary.


30-Day Scoreboard:

This scoreboard reflects solves for challenges in this module after the module launched in this dojo.

Rank Hacker Badges Score