ctf-pwn入門知識

CTF中的pwn指的是通過通過程序本身的漏洞編寫利用腳本破解程序拿到主機的權限

瞭解簡單的軟件防護技術:
棧保護:Canary
堆棧不可執行:NX(No-eXecute)
地址隨機化:PIE(position-independent executable, 地址無關可執行)或者叫ALSR(address space layout randomization)
ROP(Return-Oriented Programming)技巧(還有JOP, Return To Libc, GOT Hook ……目標劫持控制流)
各種漏洞(一般針對Linux系統)
兩大類:棧的漏洞(溢出), 堆的漏洞(更復雜)
printf 格式化字符串漏洞
I/O file 漏洞

以攻防世界中入門hello_pwn爲例
在這裏插入圖片描述
【1】RELRO:RELRO會有Partial RELRO和FULL RELRO,如果開啓FULL RELRO,意味着我們無法修改got表
【2】Stack:如果棧中開啓Canary found,那麼就不能用直接用溢出的方法覆蓋棧中返回地址,而且要通過改寫指針與局部變量、leak canary、overwrite canary的方法來繞過
【3】NX:NX enabled如果這個保護開啓就是意味着棧中數據沒有執行權限,以前的經常用的call esp或者jmp esp的方法就不能使用,但是可以利用rop這種方法繞過
【4】PIE:PIE enabled如果程序開啓這個地址隨機化選項就意味着程序每次運行的時候地址都會變化,而如果沒有開PIE的話那麼No PIE (0x400000),括號內的數據就是程序的基地址

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章