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內核》