소학회/워게임

[pwnable]Dreamhack_baby-bof

haerim9.9 2025. 9. 30. 17:19

문제 설명

Simple pwnable 101 challenge

Q. What is Return Address?

Q. Explain that why BOF is dangerous.


bof : buffer over flow

 

일단 실행해 보면 name을 입력받는다.

그리고 주소랑 값을 출력하고, hex value와 count 값을 입력받는다.

hex value에서 입력받은대로 count 수만큼 값이 바뀌는 것을 확인할 수 있다.

 

 

문제 코드

win 함수: flag 값 출력

 

메인함수

38번째 줄: win 함수 주소 출력 + main 함수에서는 win 함수를 호출하지 않는다는 문구 출력. -> 이전에 출력된 거 생각하면 win 함수 주소=0x40125b인 것을 알 수 있음.

41번째 줄: 16바이트짜리 name 변수에 입력받음.

35~48번째 줄: name을 문자열로 입력받고 16진수로 변환해서 출력, +8씩 주소 조정되는 것을 확인할 수 있음.

50~54번째 줄: scanf로 각각 값 2개씩 입력받는데 대응하는 변수가 하나밖에 없음. (%lx %c인데 &value만 대응..)

57~59번째 줄: 입력받은 value 값으로 덮어씀.

62~65번째 줄: 덮어쓴 값 출력.

 

main 함수의 위치를 모르지만 win 함수의 주소를 아니까 해당 주소로 전부 덮어버리면 플래그가 나온다.

 


개인 공부 목적으로 작성된 글이며, 틀린 정보나 해석이 있을 수 있음.

https://dreamhack.io/wargame/challenges/974

 

baby-bof

DescriptionSimple pwnable 101 challengeQ. What is Return Address?Q. Explain that why BOF is dangerous.

dreamhack.io

 

'소학회 > 워게임' 카테고리의 다른 글

[reversing]Dreamhack_simple-operation  (0) 2026.01.13
[misc]Dreamhack_Exercise: SSH  (0) 2025.11.04
[web]Dreamhack_session  (0) 2025.09.23
[reversing]H4CKING GAME_Season1 : Keygen  (0) 2025.05.13
[reversing]Dreamhack_rev-basic-0  (0) 2025.03.31