This topic is primarily aimed at people interested in software security, reverse engineering and low-level software. In this course, we will explore the foundations of software security. We will consider important software vulnerabilities and attacks that exploit them -- such as buffer overflows, heap overflows, kernel overflows -- and we will consider defenses that prevent or mitigate these attacks, including advanced testing and program analysis techniques.
# | Date | Topic | Slides | Supporting Materials |
---|---|---|---|---|
Class 1 | Aug 29, 2023 | Introduction | ch01.pdf |
|
Class 2 | Sep 05, 2023 | IA-32 Register, Byte Ordering | ch02.pdf |
|
Class 3 | Sep 07, 2023 | x86 ASM | ch03.pdf |
|
Class 4 | Sep 12, 2023 | Stack & Stack Frame (1) | ch04.pdf |
|
Class 5 | Sep 14, 2023 | Stack & Stack Frame (2) | ch04.pdf |
|
Lab 1 (10 points) |
Sep 12, 2023 | Lab: Stack and Stack Frame
Due on: 09/21/2023 23:59:59
|
lab1.pdf |
|
Class 6 | Sep 19, 2023 | System Call & Shellcode | ch06.pdf |
|
Class 7 | Sep 21, 2023 | Stack Overflow (1) | ch07.pdf |
|
Class 8 | Sep 26, 2023 | Stack Overflow (2) | ch08.pdf |
|
Lab 2 (10 points) |
Sep 26, 2023 | Lab: Stack Overflow
Due on: 10/05/2023 23:59:59
|
lab2.pdf |
|
Class 9 | Sep 28, 2023 | Return-oriented Programming (ROP) (1) | ch09.pdf |
|
Class 10 | Oct 03, 2023 | ROP (2) | ch10.pdf |
|
Lab 3 (10 points) |
Oct 03, 2023 | Lab: Return-oriented Programming (ROP)
Due on: 10/24/2023 23:59:59
|
lab3.pdf |
|
Class 11 | Oct 05, 2023 | Return-to-libc Attack | ch11.pdf |
|
Class 12 | Oct 10, 2023 | PLT, GOT & Return-to-plt Attack (Bypassing ASLR/NX) | ch12.pdf |
|
Class 13 | Oct 12, 2023 | GOT Overwrite Attack | ch13.pdf |
|
Class 14 | Oct 19, 2023 | Web Security Online Asynchronous |
ch14.pdf |
|
Class 15 | Oct 24, 2023 | Multi-Stage Exploits | ch15.pdf |
|
Lab 4 (10 points) |
Oct 24, 2023 | Lab: Multi-Stage Exploits
Due on: 11/14/2023 23:59:59
Your submission should include: A detailed project report in PDF format to describe what you have done, including screenshots and code snippets and content inside flag.txt. |
147.182.223.56 Target Port: 6666 Vulnerable program: lab4 (lab4.c) Target File (flag): flag.txt ASLR/NX is on, StackGuard and PIE is off Hint Libc version: libc6-i386_2.33-0ubuntu5_amd64 [Link] |
|
Class 16 | Oct 31, 2023 | Stack Guard & Format String Bug | ch16.pdf |
|
Class 17 | Nov 1, 2023 | Heap Exploitation (1) | ch17.pdf |
|
Class 19 | Nov 9, 2023 | Heap Exploitation (2): Unlink Attack | ch19.pdf |
|
Class 20 | Nov 14, 2023 | The Future of Software Security [Video] Online Asynchronous |
ch20.pdf |
|
Class 21 | Nov 16, 2023 | Heap Exploitation (3): glibc, House of force | ch21.pdf |
|
Class 22 | Nov 21, 2023 | Kernel Exploitation[Video] Online Asynchronous |
ch22.pdf |
|
Lab 5 (10 points) |
Nov 21, 2023 | Lab: Kernel Exploitation
Due on: 12/15/2023 23:59:59
|
lab5.pdf |
|
Class 23 | Nov 28, 2023 | Use After Free (UAF), Double Free, Hacking Gaming Consoles | ch23.pdf |
|
Final Project (30 + 10 (Quiz) points) ![]() |
Nov 28, 2023 |
"The Final"
Due on: 12/15/2023 23:59:59 Your submission should include: A detailed project report in PDF format to describe what you have done, including screenshots and code snippets and content inside flag. |
Target IP: 167.172.144.44 Target Port: 9999 Vulnerable program: final(final.c) Target File (flag): flag.txt ASLR/NX and StackGuard are on, PIE is off Hint Libc Offset: offset___libc_start_main_ret = 0x1f8f9 offset_system = 0x00049750 offset_dup2 = 0x0010b670 offset_read = 0x0010a8b0 offset_write = 0x0010a9a0 offset_str_bin_sh = 0x1b8fef |
|