dreamhack - rao (Return Address Overwrite) writeup
[dreamhack] rao (Return Address Overwrite) writeup
1. 문제
rao (Return Address Overwrite)
Exploit Tech: Return Address Overwrite에서 실습하는 문제입니다.
https://dreamhack.io/wargame/challenges/3512. 풀이

get_shell함수를 실행시키면 쉘을 실행시킬 수 있다.
main함수에서는 buf에 scanf함수로 입력을 제한없이 받기 때문에, 리턴주소를 get_shell함수의 주소로 덮으면 될 것이다.
사실상 basic_exploitation_001과 거의 같은 코드이다.
일단 buf에서 리턴 주소까지 얼마나 떨어져있는지 보자.

스택에서 0x30 bytes를 main+4에서 볼 수 있고, basic_exploitation_001과 다른 점은 64bit 프로그램이기 때문에 sfp의 크기가 8 bytes라는 것이 있다.
그리고 get_shell 주소를 찾아보자.
![]()
0x4006aa에 위치하고 있음을 확인할 수 있다.
그러면 exploit을 작성해보자.

buf부터 dummy (0x30) + sfp (0x8) + get_shell (0x8)를 입력해주면 된다. 64bit기 때문에 p64함수를 사용하는 것 잊지않기…

해결~