pwn.college
DojosLeaderboardCommunity
LoginRegister
Back to program-security

Program Security

program-security
0/41 challenges completed

In the realm of cybersecurity, your journey mirrors that of a martial artist mastering the art of defense and attack. The “Program Security” module is where you will train in the ancient techniques of shellcoding and memory corruption. Like a skilled martial artist wielding precise strikes, you will learn to craft shellcode that slips past defenses with the agility of a shadow. You will also study memory corruption vulnerabilities, discovering how to exploit pinpoint weaknesses with the precision of a pressure point strike.

Shellcoding Resources

Shellcode Injection: Introduction
Video
Slides
Shellcode Injection: Common Challenges
Video
Slides
Shellcode Injection: Data Execution Prevention
Video
Slides
Shellcoding Tips and Tricks
Video
Slides
Further Reading

Shellcoding challenges

1
ello ackers!
2
Syscall Smuggler
3
Syscall Shenanigans
4
Byte Budget
5
ClobberCode
6
Diverse Delivery
7
Pocket Payload
8
Micro Menace

Memory Corruption Resources

Memory Errors: Introduction
Video
Slides
Memory Errors: High-level Problems
Video
Slides
Memory Errors: Smashing the Stack
Video
Slides
Memory Errors: Causes of Corruption 1
Video
Slides
Memory Errors: Causes of Corruption 2
Video
Slides
Memory Errors: Stack Canaries
Video
Slides
Memory Errors: ASLR
Video
Slides
Memory Errors: Causes of Disclosure
Video
Slides
Memory Errors: Tips and Tricks
Video
Slides
Memory Errors: The Global Offset Table
Video
Slides
Further Reading

Memory Corruption Class Streams

Follow along with a live class with the same demo as the instructor!

Cooking with Canaries Livestream
Video
9
Cooking with Canaries Demo
Optional

Memory Corruption Challenges

10
Login Leakage (Easy)
11
Login Leakage (Hard)
12
Bounds Breaker (Easy)
13
Bounds Breaker (Hard)
14
Casting Catastrophe (Easy)
15
Casting Catastrophe (Hard)
16
Pointer Problems (Easy)
17
Pointer Problems (Hard)
18
Anomalous Array (Easy)
19
Anomalous Array (Hard)
20
Now you got it (Easy)
21
Now you got it (Hard)
22
Loop Lunacy (Easy)
23
Loop Lunacy (Hard)
24
Nosy Neighbor (Easy)
25
Nosy Neighbor (Hard)
26
Recursive Ruin (Easy)
27
Recursive Ruin (Hard)
28
Lingering Leftover (Easy)
29
Lingering Leftover (Hard)
30
Latent Leak (Easy)
31
Latent Leak (Hard)
32
Fork Foolery (Easy)
33
Fork Foolery (Hard)

Complex Corruption Class Streams

Follow along with a live class with the same demo as the instructor!

Complex Corruption Class Stream
Video
34
Complex Corruption Demo
Optional

Complex Corruption

Exploitation begins at the intersection of two core ideas: corrupting program memory and gaining control-flow. Memory corruption provides the foothold, allowing control over a program’s execution by overwriting critical data such as return addresses or other valuable pointers. Shellcode provides the payload, a carefully crafted sequence of instructions designed to carry out specific actions once execution is redirected. When combined, these concepts illustrate the foundation of software exploitation: not just crashing a program, but deliberately shaping its behavior to execute attacker-controlled code.

35
Canary Conundrum (Easy)
36
Canary Conundrum (Hard)
37
A Crafty Clobber (Easy)
38
A Crafty Clobber (Hard)
39
Can It Fizz?
40
Does It Buzz?
41
Make It FizzBuzz