PWN Methodology
December 30, 2025
•
December 20, 2025
•
Info
Phân tích code
- Dynamic > Static: Chạy binary trước, reverse sau
- Sink-to-source: Tìm hàm nguy hiểm (
gets,strcpy,memcpy) → trace ngược về input - Bỏ qua boilerplate: Không cần hiểu toàn bộ chương trình, chỉ cần hiểu path từ input → bug
- Mental model: “Đây là sink nguy hiểm → ta có control được parameters không? → có sanitization trên đường đi không?”
Workflow
- 5 phút đầu: Chạy binary, hiểu sơ chức năng
- Dynamic test: Thử crash inputs (cyclic pattern)
- Static analysis: Tìm vulnerable functions
- Targeted dynamic: Confirm vulnerabilities
- Lặp lại static ↔ dynamic cho đến khi exploit xong
Fuzzing
Khi nào dùng:
- Code obfuscated/ngôn ngữ lạ
- Binary phức tạp (chạy AFL background trong khi phân tích manual)
- Time-boxing: fuzzer 30 phút → không crash thì bỏ
Khi nào không dùng:
- Buffer overflow đơn giản (cyclic nhanh hơn)
- CTF giới hạn thời gian, setup fuzzer lâu hơn manual exploit
Học tập
- Mắc kẹt lắm rồi → mới xem hint
- Ưu tiên: Giải challenge mới > đọc lại writeup cũ
- Cheatsheet: Tự build từ kinh nghiệm, phải searchable (tags, kỹ thuật)
- Mindset: - kinh nghiệm tích lũy qua tricks/tips, không phải lý thuyết
⚠️ Draft: The post is still being written...