system hacking

Layer7 포너블 2차시 과제 - overwrite_variable64 풀이

leesu0605 2022. 9. 20. 23:58

일단 문제파일을 아이다로 열어 C로 디컴파일 해보았다.

v4에 문자열을 입력받으면서 s1까지 오버플로우시켜 s1 문자열에 PwnPwnPwnPwnPwnPwnPwnPwn이 들어있게 하는 문제였다.
이번에도 어셈블리어로 정확한 위치를 파악해보도록 하겠다.

v4(var_40) 변수는 ebp와 0x40만큼 떨어진 곳에 위치해있고, s1은 ebp와 0x20만큼 떨어진 곳에 위치해있다.

따라서 우린 32바이트의 dummy값을 넣어주고, Pwn*8을 덧붙여주면 된다.
그럼 s1에 PwnPwnPwnPwnPwnPwnPwnPwn이라는 문자열이 들어가게 될 것이다.
한 번 페이로드를 구성해보자.

이런 식으로 32바이트의 dummy를 보내주고 Pwn*8을 넣어 공격을 시도했다.

한 번 제대로 먹히는지 실행해보자.

익스플로잇에 성공해 쉘이 제대로 따졌고, 플래그도 읽히는 걸 볼 수 있다.

flag : L7{1e977fa2a680f6eb5f2f7919e93ed03c}