Return Address Overwrite

큐가·2025년 5월 18일
0

드림핵

목록 보기
5/5

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

워게임 Return Address Overwrite를 풀어보았다.

  1. 문제 파일을 다운로드하고 압축을 풀었더니 rao와 rao.c라는 파일이 있었다.

  2. 터미널을 실행시켜 파일의 폴더로 이동하였다.

  3. cat rao.c를 통해 rao.c 소스코드를 열어보았다.

  • scanf()를 통해 입력을 받고 있어서 버퍼 오버플로우 공격이 가능하다.
  • get_shell() 함수에서 쉘을 띄어줄 수 있다.
  1. gdb로 어셈블리어 코드를 확인한다.

어셈블리어 코드

  • 버퍼 오버플로우를 해서 flag를 얻어야 한다.
  • buf에 0x30+0x8bytes의 임의의 문자와 0x8bytes의 return address를 입력하면 <+65>의 ret 실행 시 입력한 return address로 jump할 것이다.

  • get shell의 주소를 알아냈다.

  • python3 rao_ex.py를 입력

  • flag를 얻었다.
profile
대학교 2학년, 컴퓨터학과

0개의 댓글