Layer7 3차시 과제



오늘의 먹잇감은 이 코드다! GOT를 덮어쓰면 될 것 같으니, 해당 방법으로 풀어보도록 하겠다.



좀 치사하지만, 보호기법을 전부 해제하였다. 그리고 64비트는 공부해본적이 없어서 32비트로 진행하겠다.


아까 위의 코드를 보면 알겠지만, 입력받은 내용 그대로 puts의 인자로 들어가게 된다. 그러니까, puts대신에 system 함수를 실행시키면 된다는 간단한 결론이 나온다!

그러니 함수들의 주소가 있는 GOT를 조작하면 되는데, puts의 주소를 system 함수의 주소로 바꿔치기 하면 컴퓨터는 해당 함수를 실행시키고 말것이다.



먼저, system 함수의 주소를 p system 명령어로 구해주고,


아까 얻었던 puts의 plt주소를 통해 GOT주소를 알아낸다!
이후,
set *0x804a010 = 0xf7e3ddb0
: (puts의 got) = (system의 got)
명령어를 실행 해준뒤


냠냠 오늘도 맛있는 해킹이었다.

Comments

Popular Posts