튜기's blogggg

FC4 dark_stone -> cruel

by St1tch



코드를 보면 fc4의 첫 문제라 그런지 간단하다. 

hint에 ret sleding을 이용하라고 나와있으니 이를 이용했다.

우선 main함수의 ebp뒤쪽을 찾아보았다.




여러번 실행시켜 보았는데 생각보다 변하지 않는 값들이 많다.

제일 먼저 나오는 0x00795898을 사용하여 심볼릭 링크를 걸어 시도해보았다.

근데 계속 세그먼트폴트가 발생하였다.




strace를 이용해 보면 실제 인자와 gdb에서 보았던 인자가 달랐다.



execl을 보니 인자로 ebp를 참조하지 않고 다른 레지스터를 참조하는 것이 보였다.

따라서 gdb로 보는 것보다 strace를 이용해서 ret갯수를 한개씩 늘려가며 적당한 이름의 인자를 찾아보았다.





ret를 7번 sleding하였을때 3글자의 인자가 나왔다.

파일로 저장하여 xxd를 이용하여 헥스값을 확인했다.





권한을 얻고 쉘을 획득하는 프로그램을, xxd에서 인자값을 확인하여 "\x3c\xad\x8c" 파일명으로 심볼릭 링크를 걸었다.




ret를 7번 반복하고 execl함수의 주소를 넣었다.




성공


블로그의 정보

튜기's blogg(st1tch)

St1tch

활동하기