PWN入門


pwn


”Pwn”是一個黑客語法的俚語詞 ,是指攻破設備或者系統 。發音類似“砰”,對黑客而言,這就是成功實施黑客攻擊的聲音——砰的一聲,被“黑”的電腦或手機就被你操縱。以上是從百度百科上面抄的簡介,而我個人理解的話,應該就是向目標發送特定的數據,使得其執行本來不會執行的代碼,前段時間爆發的永恆之藍等病毒其實也算得上是pwn的一種。

pwn介紹

CTF pwn中的目標是拿到flag,一般是在linux平台下通過二進制/系統調用等方式編寫漏洞利用腳本exp來獲取對方服務器的shell,然后get到flag

前置技能

  • 匯編語言,函數調用約定,大小端,函數棧幀

  • python語言,gdb調試,IDA pro分析

  • linux相關:32位與64位,各類防護機制(NX,ASLR,Canary,Relro),ELF文件格式,系統調用,shell命令

  • 編譯,鏈接,裝載,執行

常見漏洞簡介

  • 緩沖區溢出(Buffer overflow)

  • 棧溢出,堆溢出,bss溢出等

  • 整數溢出(Integer overflow)

  • 整數的加減乘法

  • 有符號與無符號的轉換

  • 整數溢出一般可以轉換成其它漏洞

  • 格式化字符串(Format string)

  • printf(s),sprint f(s),fprintf(s)可以修改地址也可以用來leak信息

  • 使用后釋放(Use-after-free)

  • 釋放掉的內存可能會被重新分配,釋放后使用會導致重新分配的內存被舊的使用所改寫

  • Double free是一種特殊的UAF

工具

  • IDA

  • pro

  • gdb

  • pwntools

  • zio

  • peda

  • readelf

  • ropgadget

  • string

  • objdump

利用方法

  • 注入代碼 

    • 溢出后在棧上執行代碼

  • 偽造函數 

    • 修改.got.plt地址,替換掉正常函數

    • 布置gadget將ret地址指向libc中的其它函數

學習網站

如何開始你的CTF之旅

PWN總結

p4-team

uaf

ddaa

二進制漏洞學習

sploitfun

CTF Writeup Github(Note:百度搜不到github Pages的)

pwnable.kr

pwnable.tw

ROPemporium

學習資料

《有趣的二進制》 
《深入理解計算機系統》 
《程序員的自我修養》 
《深入理解Linux內核》


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM