이번에는 dark_eyes를 풀어볼거다. 먼저 hell_fire 소스를 보자
여기서 포트는 7777이라는 것과 hint를 볼 수 있는데 hint에 적힌 것보다 훨씬 쉬운 방법이 있으므로 우리는 이 방법으로 풀자
우선 system함수의 메모리 주소를 통해 system함수의 명령을 보면 do_system라는 함수를 호출하는 것을 알 수 있다.
그 뒤 do_system 함수의 내부의 명령어들을 보다보면 execve 함수를 실행시키는 부분이 있는데 이 함수를 실행하게끔 하는 주소를 RET에 적으면 /bin/sh를 실행시키는 것과 똑같은 작용이 일어난다. 고로 우리가 RET에 덮어씌울 메모리 주소는 0x750784가 된다.
gdb로 hell_fire을 열어서 우리가 얼마나 덮어씌우면 SFP가 나오는지 확인한다.
우리는 최종적으로 264만큼 덮으면 SFP를 만나게 되므로 268개만큼 덮고 RET 주소에 0x750784가 되게 하면 성공이다.
성공이다. bb
'해커스쿨 LOB' 카테고리의 다른 글
LOB FC3 evil_wizard -> dark_stone (0) | 2019.02.25 |
---|---|
LOB FC3 hell_fire -> evil_wizard (0) | 2019.02.23 |
해커스쿨 lOB FC3 iron_golem -> dark_eyes (0) | 2019.02.22 |
LOB FC3 gate -> iron_golem (0) | 2019.02.22 |
FC3 보호기법에 대해 (0) | 2019.02.22 |