아...정말로 이 문제 풀다가 pwnable과 손절할뻔 했다....

우선 main문은 별게 없다. 그냥 buf에 보고싶은 값을 10진수로 입력받으면 해당 값을 주소로 변환해서 출력해주고, src에 값을 입력해주면 print_message에서 출력해준다음 끝나는 문제이다.

print_message함수를 자세히 보면 dest에 데이터를 넘겨주고 출력하는데 아까 main문에서 본 read함수의 입력값보다 dest의 값이 훨씬 작음으로 bof가 일어난다. 해당 함수의 ret를 잘 덮어 system함수값을 입력해주면 끝날 것 같다......라고 생각했는데 libc의 sh를 사용하지 않고 풀어야했다.(문제 난이도 급상승...)

일단 sh를 적을 공간이 필요했는데, bss에 적기에는 여분의 공간이 너무 적었다....해서, 스택을 이용해 문제를 풀기로 했다.

스택에 "sh"를 넣고 슥 풀면 문제가 해결된다. (절대 쓰기 귀찮아서 안쓰는게 아님)

'war game > game' 카테고리의 다른 글

[practice]-2015410208  (0) 2019.08.17
[practice]-2015410212  (0) 2019.08.12
[practice]-19950320  (0) 2019.07.28
[practice]-daRk_TempLer  (0) 2019.07.23
[practice]-rain_dROP  (0) 2019.07.23

+ Recent posts