923 pwn學習

季夏廿九發表於2024-09-24

9/23 pwn學習

前言

今天參加了NewStart競賽,一共四道題,透過各種查資料做出了兩道題(第一次體會到pwn題給人的無力感),做到第三題的時候發現已經不在我能力範圍內了,exp寫出來也無法攻擊成功,在下午四點時只好作罷

不過讓我自豪的是拿到了第二題的三血,也是pwn生涯的第一個高光時刻了(太容易滿足了

於是我打算從基礎知識入手開始學pwn,參考XMCVE 2020 CTF Pwn入門課程這個影片與書籍《CTF競賽權威指南-pwn篇》進行學習

我將記錄下學習的內容,方便後面進行知識的回顧

少年終將在pwn道路上闖出一番天地


不希望做一個玩也玩不好,學也學不好的人

2024/9/23

pwn的基本流程

pwn就是二進位制漏洞挖掘與利用

1. 什麼是二進位制程式

就是可執行檔案,在window的格式是.exe,在Linux中的格式是.elf

主辦方出題一般會給出一個二進位制檔案,並且在遠端伺服器的某個埠掛上二進位制服務

2. pwn的一般攻擊流程

在遠端伺服器掛著一個二進位制服務,利用主辦方提供的同樣的二進位制程式,挖掘漏洞,並且編寫exp進行攻擊遠端伺服器

  1. 將二進位制程式拖進Linux虛擬機器
  2. 利用file命令去了解它是怎樣一個格式,來決定用什麼IDA開啟
  3. 用32bit或64bit的IDA Pro反彙編器)來分析二進位制的程式碼中究竟有什麼內容,IDA可以將二進位制檔案的機器碼轉換為彙編程式碼、C語言程式碼(C語言是基礎中的基礎
  4. 根據IDA還原的C語言原始碼(不是和原本編寫者寫得一模一樣的,但是能實現的功能是一樣的),尋找結構漏洞,並且利用漏洞
  5. 根據漏洞開始寫exp(攻擊指令碼

這是一個exp的示例
  1. 使用python命令執行該指令碼,最終獲取伺服器控制權
  2. cat flag獲得flag拿分