[HackCTF] Basic_Bof #1
2021. 3. 4. 14:03
Wargame/HackCTF
1. 문제 의도 파악 우선 v5 값이 0xDEADBEEF일 때 쉘을 획득할 수 있으니 v5 값을 변경하면 된다. 어떻게 값을 변경할 수 있을까 찬찬히 살펴보니 다음과 같은 결론이 나왔다. 우선 gets 함수로 배열 s에 입력을 받고 있는데, 배열의 크기인 40보다 더 큰 45 바이트로 입력을 받고 있다. 따라서 buffer overflow 공격을 통해 배열 s를 넘치게 해서 v5 값을 변경할 수 있을 것이다. 2. offset 구하기 디버깅을 하지 않고 ida를 통해 간단하게 offset을 얻었다. 배열 s의 주소가 ebp-52이고 v5의 주소가 ebp-12이니, offset은 40이다. 따라서 40만큼을 dummy 값으로 채우고 그 이후부터 0xDEADBEEF(변경해야 할 값)로 채우면 된다. payl..