CTF學習之PWN入坑指南(贈IDA工具)

2021-02-23 烏雲安全

IDA工具獲取方式見文末

鬥哥將輸出PWN的一系列文章,手把手帶小夥伴們入坑 。

CTF的PWN題想必是很多小夥伴心裡的痛,大多小夥伴不知道PWN該如何入門,不知道該如何系統性學習,本期開始,鬥哥將輸出PWN的一系列文章,手把手帶小夥伴們入坑 。

0×01開篇介紹


PWN 是一個黑客語法的俚語詞 ,是指攻破設備或者系統 。發音類似」砰」,對黑客而言,這就是成功實施黑客攻擊的聲音–砰的一聲,被」黑」的電腦或手機就被你操縱了 。

鬥哥認為解決PWN題就是利用簡單逆向工程後得到代碼(源碼、字節碼、彙編等),分析與研究代碼最終發現漏洞,再通過二進位或系統調用等方式獲得目標主機的shell 。

0×02 解題步驟


1. 逆向工程:

逆向是PWN解題的第一步,但不是PWN題的重點。所以只要知道簡單的逆向工具的使用步驟。最終目的是得到代碼(源碼、彙編等)。

掌握工具:

IDA Pro

2. 分析代碼:

分析代碼步驟也就是漏洞挖掘,這是PWN解題最重要的一步。

對逆向工程的結果進行靜態分析或對程序進行動態調試,找出程序中存在的漏洞。大多數PWN題都存在常見的漏洞 。

掌握工具:

靜態分析:IDA Pro

動態調試:gdb(with peda or gef)、windbg、ollydbg

掌握技能:

1. C語言:變量聲明、常見函數的使用、熟悉常見漏洞函數等

2. 彙編語言:程序執行、函數棧幀、函數調用等

3.漏洞利用:

根據分析代碼步驟得出的漏洞點,使用漏洞利用方式對漏洞進行利用,編寫初步的exp。

掌握工具:

pwntools、zio

掌握技能:

1. 熟悉程序各種保護機制的繞過方式

2. 掌握ELF文件基本概念

3. 熟悉Linux系統如何加載ELF程序

4. getshell:

到了getshell步驟 ,PWN題基本已經解出來了,把我們漏洞利用步驟的exp替換成獲取系統shell的code形成最終exp,就可以拿到主機的shell權限獲取flag。

分兩種情況:

(1) 內存程序中有getshell函數或指令時,直接調用/劫持。

(2) 存程序中沒有getshell函數或指令時, 就要編寫shellcode。

getshell函數如:system(「/bin/sh」)

掌握工具:

pwntools、zio

掌握技能:

1. 系統調用方式

2. 學習shellcode基本原理

3. 學習如何編寫shellcode

4. 學習plt & got表在程序運行時的功能

0×03 常見的漏洞介紹


在分析代碼步驟時,有些漏洞是經常出現,所以我們應該事先了解常見的漏洞,這樣可以讓我們在分析代碼時事半功倍。

下面鬥哥簡單列舉一些漏洞,相關漏洞的詳細介紹可以到Wiki學習。

1. 緩衝區溢出:

緩衝區溢出包括:堆溢出、棧溢出、bss溢出、data溢出。這些溢出通常覆蓋指針,造成程序執行劫持。其中棧溢出是出題最多的一個緩衝區溢出漏洞,也是鬥哥PWN系列文章的重點。

2. 整數溢出:

整數溢出通常是指:無符號型與有符號的轉換 、整數加減乘除法。整數溢出通常會進一步轉換為緩衝區溢出、邏輯漏洞等其他漏洞。

3. 格式化字符串:

格式化字符串通常是指:程序使用printf(s),sprintf(s),fprintf(s)等函數格式字符且未作任何處理。可能導致任意地址讀寫 、洩露函數地址。

4. 邏輯漏洞:

邏輯漏洞主要形成原因是程序訪問時,或者處理數據不當而引發的漏洞。主要漏洞有訪問控制,協議漏洞,條件競爭等。

0×04 小小總結

鬥哥的這篇文章主要介紹PWN的解題步驟和每個步驟需要學習的工具與知識點,以及常見漏洞介紹,小夥伴們可以根據鬥哥列出的學習框架、解題步驟進行學習與解題。

下期鬥哥將帶來棧溢出的原理、如果遇到棧溢出的PWN題該如何利用,拿到系統shell權限獲取flag。

推薦學習網站:

https://ctf-wiki.github.io/ctf-wiki/

https://pwnable.kr/

https://www.kanxue.com/chm.htm

往期教程

CTF網絡安全大賽學習從入門到精通教程、工具、writeup合集

2018-2019安卓逆向Android安全反編譯脫殼加固IDA調試實戰培訓教程5套

【教程】升級版HCIA-Security V3.0認證課程 華為ICT領域網絡安全工程師教程

IOS逆向與安全學習視頻教程

獲取更多教程請點擊閱讀原文

回復關鍵詞:ida,獲取ida工具

回復關鍵詞:ida,獲取ida工具

回復關鍵詞:ida,獲取ida工具

掃描關注烏雲安全

相關焦點

  • PWN學習指南
    作業系統原理 :找網課看看CTF中大部分的pwn題都是linux平臺上的,那麼懂得linux的基本操作也是必不可少的.常用的命令,權限控制,linux的系統調用等…百度和b站找找教程就行了.參考書籍《鳥哥的Linux私房菜基礎篇》(真的是只是參考書籍,太厚了…,遇到了不懂的就翻翻就好了)懂的上面這些就可以學習基本的二進位漏洞了.
  • Android逆向學習-使用ida動態調試中的那些坑
    title: Android逆向學習-使用ida動態調試中的那些坑copyright
  • PWNDocker:一個用於CTF PWN的Docker容器
    shenyuan123/pwndocker介紹一個基於Phusion/baseimage的docker容器,用於CTF中的PWN類題目使用Docker hub地址:https://hub.docker.com/r/skysider/pwndocker/docker pull skysider/pwndockerdocker run -it --rm -name testctf
  • CTF從入門到提升(三)
    A方向:IDA工具使用(fs插件)、逆向工程、密碼學、緩衝區溢出等;B方向:Web安全、網絡安全、內網滲透、資料庫安全等 前10的安全漏洞;5.黑客攻防技術寶典:系統實戰篇 有各種系統的逆向講解1.Web應用安全權威指南(最推薦小白,宏觀web安全)4.黑客攻防技術寶典 web實戰篇 web安全的所有核心基礎點,有挑戰性,最常規,最全,學好會直線上升
  • CTF從入門到提升(二)
    黑客攻防技術寶典:系統實戰篇 有各種系統的逆向講解B方向:Web應用安全權威指南 最推薦小白,宏觀web安全Web前端黑客技術揭秘 黑客秘籍——滲透測試實用指南黑客攻防技術寶典 web實戰篇 web安全的所有核心基礎點,有挑戰性,最常規,最全,學好會直線上升代碼審計:企業級web代碼安全架構
  • CTF學習站點總結
    CTF學習站點總結0x00 前言公眾號的後臺,有很多的朋友都在問
  • PWN路由器之環境搭建
    感覺路由器這塊就是固件提取,運行環境修複比較麻煩,其他部分和一般的 pwn 差不多。由於大多數路由器是 mips 架構的,本文就以搭建MIPS運行、調試平臺 為例介紹環境的搭建。其他架構類似。Adding $1 to br0..." sudo /sbin/brctl addif br0 $1 sleep 3增加權限 chmod a+x /etc/qemu-ifup重啟網絡服務/etc/init.d/networking restart下載與運行qemu的鏡像uclibc交叉編譯工具鏈
  • CTF入門書籍推薦ctf-all-in-one
    CTF入門書籍推薦 ctf-all-in-oneCTF(Capture The Flag)中文一般譯作奪旗賽,在網絡安全領域中指的是網絡安全技術人員之間進行技術競技的一種比賽形式
  • RSCTF2020 WP
    by:jesen0x03 簡單的sql注入表名是猜的users,通過注入獲取密碼:使用的payload:username=admin' and 0 union select password,2 from users#&password=aaa解密MD5得到密碼為:ctf2020
  • CTF-工具包
    二進位的        目錄        pwntools              有用的CTF公用事業。二進位的        目錄        python-pin             pin的Python綁定。二進位的        目錄        qemu                 qemu的最新版本!
  • 淺談Linux Pwn Unlink機制
    欺騙進行unlink了解這些之後以一道題目作為例子進行說明,這也是ctfwiki上的一道例子https://github.com/ctf-wiki/ctf-challenges/tree/master/pwn/heap/unlink/2014_hitcon_stkof題目也是最常見的item類型的題目提供了創建,修改,編輯,
  • Linux pwn入門學習到放棄
    本文記錄菜鳥學習linux pwn入門的一些過程,詳細介紹linux上的保護機制,分析一些常見漏洞如棧溢出,堆溢出,use after free等,以及一些常見工具介紹等。Linux程序的常用保護機制先來學習一些關於linux方面的保護措施,作業系統提供了許多安全機制來嘗試降低或阻止緩衝區溢出攻擊帶來的安全風險,包括DEP、ASLR等。
  • 論菜雞PWN手如何在無網環境下生存
    沒準備好,那時碰巧我下了ctf-challenge,在那裡碰巧弄到了libc,可能有人喜歡用libc-searcher那個py版本的項目,我不怎麼喜歡,用那個導入庫查找感覺較慢,還是喜歡手動洩露後到網頁查找,於是有了這篇文章pwntools安裝pip install pwntools出錯自己解決啊,那些個錯誤都查得到one_gadgetgem
  • ctf中關於syscall系統調用的簡單分析
    首先檢查文件屬性和文件開啟的保護有哪些:$file ciscn_s_3ciscn_s_3: ELF 64-bit LSB executable, x86-64 就看第一種 了:因為是系統調用嘛, 所以我們要想 構造 execve("/bin/sh",0,0)  需要 將 sys_execve 的調用號 59 賦值給 rax將 第一個參數即字符串 "/bin/sh"的地址 賦值給 rdi將 第二個參數 0 賦值給 rsi將 第三個參數 0 賦值給
  • CTF 從入門到精通 | 內附教程分享
    B 方向:Web 應用安全權威指南 最推薦小白,宏觀 web 安全Web 前端黑客技術揭秘黑客秘籍——滲透測試實用指南黑客攻防技術寶典 web 實戰篇 web 安全的所有核心基礎點,有挑戰性,最常規,最全,學好會直線上升代碼審計:企業級 web 代碼安全架構刷題入門----從基礎題目出發(推薦資源)
  • CTF工具集合安裝腳本操作姿勢
    binary          peda                           gdb的增強環境  binary          preeny                      一個有用的preload集合  binary           pwntools                有用的CTF實用工具  binary
  • 2020年滲透測試筆記、文章、教程、工具資源合集一
    這裡記錄有關pwn的一些技巧。[1026星] [17d]sundowndev / hacker-roadmap概述了學習滲透測試所需的知識,以及一系列黑客工具,資源和實踐道德黑客的參考資料[1026星] [2y] [ObjC]zhengmin1989 / ios_ice_and_fireiOS冰與火之歌[
  • Windows pwn學習筆記
    安裝winpwnpip install winpwnpip install pefilepip install keystone-enginepip install capstone棧溢出相關結構體32為系統下SEH結構體//sehFrame _EH3_EXCEPTION_REGISTRATION struc
  • Phalcon入坑指南系列【一】
    但我還是要吐槽一下這個框架,安裝工具包的時候我第一次安裝的是phalcon3.4.3,然後提示說是需要升級到4.0.0版本。這還沒什麼,那就升級唄!下載了4.0.0後,說需要升級到4.0.3。那沒事在繼續下載,這次直接就下載了4.0.6。在聽官方的,我估計一晚上都安裝不成功。
  • IDA pro簡介
    IDA是Windows,Linux或Mac OS X託管的多處理器反彙編程序 和調試程序,它提供了許多功能,是一款很強大的靜態反編譯工具。支持很多插件和python,利用一些插件可以提供很多方便的功能大大減少工作量,在CTF中,逆向和pwn都少不了它,更多強大的功能等待童鞋們自己去學習挖掘,三言兩語講不完。