LOB
LOB 8번(orege → troll)
趙河晶
2016. 10. 4. 16:56
cat troll.c
argc의 개수가 2개여야 하고 argv[1]이 0으로 초기화 된다. 따라서 앞의 문제처럼 argv[0]을 공략하면 될 거 같다.
argv[0]에 쉘코드로 된 심볼릭 링크를 걸고 RET값을 argv[0]쪽으로 덮는다.
근데 자꾸 저렇게 troll이 없는 파일이라 뜬다.
쉘코드에 보면 \x2f가 있는데 이게 아스키 코드로 “/”이므로 디렉토리 구분자로 인식한다고 한다.
그래서 쉘코드를 \x2f가 없는 것으로 바꿔준다.
gdb로 argv[0]의 주소를 확인한다.
쉘코드를 획득할 때 까지 주소를 바꿔주며 삽질을 한다.
계속 시도하다보니 됐다.