Introduction to Exploit Development

Submitting Projects

CCSF students must do these things to get credit:

  • Perform the project steps until you find a flag
  • Capture a whole-desktop image showing the flag
  • Outline or highlight the flag in the image
  • Submit the image in the appropriate Project in Canvas
  • Type the flag into the text field

I: Command Injection

ED 30: Linux Virtual Machine  15
ED 101: Essential Linux 15 + 10 extra
LJ: Linux Journey 83 extra
W 101: Linux command line 35 extra
ED 102. Command Injection 20 + 40 extra
ED 103: SQL Injection 30 + 155 extra
ED 104: CMD Injection 15 + 25 extra
ED 105: Server Side Template Injection (SSTI) 35 extra
ED 106: PHP-FPM Command Injection 15 extra

II: Binary Exploits for Linux

ED 201: Linux Buffer Overflow With Command Injection  15
ED 202: Linux Buffer Overflow Without Shellcode  40 + 75 extra
ED 203: Linux Buffer Overflow With Listening Shell  15 + 30 extra
ED 204: Exploiting a Format String Vulnerability  20
ED 205: Very Simple Heap Overflow  10 + 20 extra
ED 206: Heap Overflow via Data Overwrite  10 + 35 extra
ED 207: Linux Buffer Overflow with ROP (requires VMware)  15
ED 210: Exploiting a Race Condition  10 extra
ED 220: Intro to 64-bit Assembler  40 extra
ED 230: Hardening ELF Binaries  15 extra

III: Binary Exploits for Windows

ED 32: Windows 10 Virtual Machine (recommended)  15 extra
H 2: Windows 2016 Server Virtual Machine (not recommended)  15
 
ED 308: Exploiting "Vulnerable Server" on Windows     Google Cloud version  25 + 25 extra
ED 309: Defeating DEP with ROP  20 extra
ED 301: Windows Stack Protection I: Assembly Code  15
ED 302: Windows Stack Protection II: Exploit Without ASLR  15
ED 303: Windows Stack Protection III: Limitations of ASLR  15 extra
ED 310: Windows Mitigations  10 extra
ED 318: Exploiting Easy RM to MP3 Converter on Windows with ASLR  30 exta
ED 319: SEH-Based Stack Overflow Exploit · Windows 10 version  20 + 45 extra
ED 330: C# Dot Net  20 extra
ED 331: Dot Net Reflector  45 extra
ED 340: Making Custom Shellcode  20 extra

IV: ARM Exploits

Preparing ARM Systems

ED 40: Linux on ARM64 Hardware  15 extra
ED 41: Emulating ARM Machines  15 extra

Exploiting ARM Systems

ED 440: Exploiting Linux on 32-Bit ARM  15 extra
ED 441: Exploiting Linux on 64-Bit ARM  15 extra

Old Projects (Not Recommended)

ED 413: ARM Shellcode on the Pi  30 extra
ED 414: Self-Modifying ARM Shellcode on the Pi  20 extra
ED 420: Jailbreaking an iPhone with Checkra.in  15 extra
ED 421: Buffer Overflow on an iPhone  20 extra

V: Extras

R 10: Rust Basics, Overflows, & Injection  35 extra
R 20: Rust Dangling Pointers & Memory Leaks  35 extra
ML 100: Machine Learning with TensorFlow  65 extra
ML 101: Computer Vision  10 extra
ML 102: Breaking a CAPTCHA  10 extra
ML 103: Deblurring Images  40 extra

Assembly Language

Don't submit these projects in Canvas; use the scoring system below

Enter Flags · Scoreboard

ASM 100: Basics  69 extra
ASM 104: Bases & Printing  40 extra
ASM 105: ASCII  20 extra
ASM 110: Gdb  30 extra
ASM 120: Files  55 extra
ASM 200: Caesar Cipher  35 extra
ASM 210: XOR  20 extra
Scores archived 10-5-2021

LJ renamed on 1-18-23, removed and W 101 added on 2-1-23
ED 40, 41, 440 added; LJ restored 2-25-23
ED 441 added 2-26-23
ED 105 changed to remove setting up your own server 4-4-23
ED 220 changed to extra credt 4-17-23

Scoreboard · Submit Flags · Scores from: 127 S22 · WASTC Sum22 · CCC Sum22 · WC Sum22