寫在前面
什么是pwn
- 對程序進行二進制層面的分析,利用程序中存在的邏輯漏洞或內存破壞漏洞,進行分析利用,來達到getshell的目的。
- 這類方向的題目在CTF中被劃分為PWN方向,也叫pwnable。
- 常見為Linux 下的ELF文件
- 特點
- 入門難,進階難,精通難
- 學習的曲線很陡峭
- 需要經驗與練習
- 非常容易自閉
我們的文檔內容
文章主要面向對象為CTF初學者和參賽者,或者對緩沖區溢出有濃厚興趣的同學們,目的是解決pwn入門難的問題,突出重點,最終目的是讓同學們能夠獨立自主解答pwn的題目。
本章節寫于2020年7月7日,也就是高考數學的那天。CTF和其實考試差不多,要想提高成績,最有效最簡單的辦法就是刷題,而且要多刷大型賽事的真題,光靠理論知識的積累意義不大,就像數學考試那樣,通過不斷刷題來鞏固自己的知識體系,熟練解題方法和套路。
我們會突出重點,明確哪些是必須要熟練掌握的,對于一開始不太理解的知識點,可以先記住,在后續刷題的過程中慢慢體會其原理(很好的辦法)。還有一個關鍵點是同學們的自學能力。大家在學習過程中肯定會遇到自己的個性問題,這時候就需要提問的智慧了。
- 文檔主要分為5部分
- 基礎概述,主要講基礎理論知識,這是后續所有內容的基礎
- 常用工具介紹,工欲善其事,必先利其器。這一章主要講在CTF比賽中pwn的常用工具,幫助我們更好地分析程序寫exp。
- 棧溢出
- 格式化字符串
- 堆溢出
- 整數溢出