01 CTF 簡介
1.1 賽事介紹
1.2 知名賽事及會議
1.3 學習經驗
02 二進位檔案
2.1 從原始程式碼到可執行檔
2.2 ELF 檔案格式
2.3 靜態連結
2.4 動態連結
03 組合語言基礎
3.1 CPU 架構與指令集
3.2 x86/x64 組合語言基礎
04 Linux 安全機制
4.1 Linux 基礎
4.2 Stack Canaries
4.3 No-eXecute
4.4 ASLR 和PIE
4.5 FORTIFY_SOURCE
4.6 RELRO
05 分析環境架設
5.1 虛擬機器環境
5.2 Docker 環境
06 分析工具
6.1 IDA Pro
6.2 Radare2
6.3 GDB
6.4 其他常用工具
07 漏洞利用開發
7.1 shellcode 開發
7.2 Pwntools
7.3 zio
08 整數安全
8.1 電腦中的整數
8.2 整數安全性漏洞
09 格式化字串
9.1 格式化輸出函數
9.2 格式化字串漏洞
10 堆疊溢位與ROP
10.1 堆疊溢位原理
10.2 返回導向程式設計
10.3 Blind ROP
10.4 SROP
10.5 stack pivoting
10.6 ret2dl-resolve
11 堆積利用
11.1 glibc 堆積概述
11.2 TCache 機制
11.3 fastbin 二次釋放
11.4 house of spirit
11.5 不安全的unlink
11.6 off-by-one
11.7 house of einherjar
11.8 overlapping chunks
11.9 house of force
11.10 unsorted bin 與large bin 攻擊
12 Pwn 技巧
12.1 one-gadget
12.2 通用gadget 及Return-to-csu
12.3 綁架hook 函數
12.4 利用DynELF 洩露函數位址
12.5 SSP Leak
12.6 利用environ 洩露堆疊位址
12.7 利用_IO_FILE 結構
12.8 利用vsyscall