A set of simple buggy programs with corresponding exploits and simple shellcode. This set of programs is used in CS412 at EPFL to introduce students into the way of shellcoding and demonstrates common bugs with different attack vectors.
Check out the different sub directories for stack-based and heap-based memory corruption (simple overflows, no use-after-free), type safety violations, and format string bugs. The sanitizer directory demonstrates what kind of bugs sanitizers can and cannot catch during testing.