↓快轉到主要內容
所有專案

2024 NISRA Enlightened|課程講師/社員

Pwn 課程

從 Pwn 基礎、真實漏洞案例到 Integer Overflow 與 Buffer Overflow Lab 的入門課程。

2024 NISRA Enlightened|課程講師/社員|Pwn 課程封面
Year
2024
Role
社員/課程設計/Lab/現場教學
Team
個人授課
Share
100%
01 / Overview

專案總覽

這堂課為 NISRA Enlightened 的 Pwn 入門課程,從二進位漏洞利用的概念與應用開始,再透過 Pwn2Own 案例和 Flag Shop Lab 帶學員逐步實作。

課程設計重點是讓第一次接觸 Pwn 的學員能從程式行為走到可觀察、可操作的漏洞。
02 / Challenge

問題與動機

Pwn 同時涉及程式語言、記憶體、組合語言與除錯工具,初學者很容易在工具操作或名詞中失去主線。

概念跨度大

從整數、資料覆寫到控制流程,知識層次需要循序建立。

實作回饋重要

只看漏洞原理不容易建立直覺,必須透過可重現的 Lab 練習。

03 / Solution

方法與核心內容

課程先以真實 Pwn2Own 案例建立動機,再使用同一組 Flag Shop 題目逐步加入 Integer Overflow、Overwrite Data 與 Buffer Overflow 等概念。

案例導入

以『Your printer is not your printer』說明漏洞利用的真實影響。

漸進式 Lab

讓學員在相同情境中觀察不同漏洞如何改變程式狀態。

04 / Architecture

技術脈絡

教學路線從程式輸入與整數開始,逐步走向記憶體資料、控制流程與漏洞利用。

INPUT程式與使用者輸入
STATE整數與資料狀態
MEMORY記憶體覆寫
EXPLOIT取得 Flag

Pwn 分析主線

教材將漏洞利用拆成資訊蒐集、靜態分析、漏洞定位、利用與後續控制。學員不只嘗試特殊輸入,而要把輸入如何進入記憶體、程式如何做算術與控制流程如何改變連起來。

Pwn2Own 印表機案例

案例以 Canon ImageCLASS MF644Cdw 為背景:裝置執行客製化 DryOSv2,ARMv7 32-bit little-endian,核心與服務連結在同一映像,且缺少 stack guard、DEP 與 ASLR 等現代緩解。研究者先逆向韌體解密,再以已知函式與字串校正 image base 至 0x40affde0。

利用鏈

  • 利用 Canon BJNP 協定把 shellcode 放到固定且可預期的位置。
  • 觸發 SLP 服務的 stack overflow,覆寫 return address。
  • 將控制流程導向先前放入記憶體的 shellcode。
案例用來讓學員理解:漏洞能否利用,同時取決於記憶體佈局、架構、服務協定與緩解機制。

Flag Shop:從資料錯誤到控制流程

Lab 使用同一個商店情境逐步加入負數輸入、32-bit integer overflow、相鄰資料覆寫與 buffer overflow,讓學員觀察錯誤從業務邏輯一路升級為記憶體破壞。

修補對照

  • 負數/邊界:驗證輸入範圍,不讓不合理數量進入計算。
  • 整數溢位:在運算前後檢查範圍,或選擇具安全檢查的型別與語言。
  • 字串覆寫:避免 gets、無界 scanf、strcpy、sprintf,改用明確長度限制。
05 / How it works

執行流程

每個 Lab 先觀察正常行為,再透過輸入差異引導學員找到漏洞。

01 — 理解程式邏輯

閱讀題目流程與輸入限制,建立正常狀態的預期。

02 — 觸發異常狀態

利用整數與資料處理問題改變程式判斷。

03 — 連結到利用概念

從 Lab 結果回到 Buffer Overflow 與真實漏洞案例。

每個 Lab 的觀察方法

先記錄正常輸入的程式狀態,再設計最小異常輸入並比較金額、變數與記憶體的改變;最後回到原始碼或除錯器定位缺少的驗證。這能把『拿到 Flag』轉成可重複的漏洞分析方法。

由入門題連到真實裝置

Flag Shop 控制變因、降低工具門檻;印表機案例則展示同一概念在 RTOS、韌體與網路協定中的實際組合。兩者相互對照,使學員能理解基礎漏洞為何仍會出現在複雜產品。

06 / My Contribution

我的貢獻

貢獻比例 100%。這堂 Pwn 課程由我獨立規劃與授課,包含課程結構、教材製作、實作 Lab、示範內容及現場講解。

  1. 01課程設計安排 Pwn 簡介、案例與實作的學習順序。
  2. 02Lab 準備設計 Flag Shop 練習與各階段提示。
  3. 03教材製作整理 100 頁簡報與示範內容。
  4. 04現場教學帶領學員操作、除錯並回答實作問題。
07 / Result & Reflection

成果與反思

課程完成從 Pwn 概念到漏洞實作的完整教學,同時也重新鞏固了自身的 Pwn 基礎概念,以及也學會設計題目。

教學讓我重新檢查自己對基礎概念的理解:能把複雜漏洞拆成學員可以驗證的小步驟,才算真正掌握。
08 / Presentation

完整簡報

NISRA Enlightened Pwn

課程教材,共 100 頁。

滑到簡報區域後載入…

1—

若瀏覽器無法顯示嵌入式 PDF,請另開完整簡報。