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
함수를 사용하는 것 잊지않기…
해결~