본문 바로가기

LOB

LOB 8번(orege → troll)

cat troll.c

argc의 개수가 2개여야 하고 argv[1]0으로 초기화 된다. 따라서 앞의 문제처럼 argv[0]을 공략하면 될 거 같다.

argv[0]에 쉘코드로 된 심볼릭 링크를 걸고 RET값을 argv[0]쪽으로 덮는다.



근데 자꾸 저렇게 troll이 없는 파일이라 뜬다.

쉘코드에 보면 \x2f가 있는데 이게 아스키 코드로 “/”이므로 디렉토리 구분자로 인식한다고 한다.

그래서 쉘코드를 \x2f가 없는 것으로 바꿔준다.


gdbargv[0]의 주소를 확인한다.


쉘코드를 획득할 때 까지 주소를 바꿔주며 삽질을 한다.


계속 시도하다보니 됐다.

'LOB' 카테고리의 다른 글

LOB 10번(vampire → skeleton)  (0) 2016.10.04
LOB 9번(troll → vampire)  (0) 2016.10.04
LOB 7번(darkelf → orge)  (0) 2016.10.04
LOB 6번 (wolfman → darkelf)  (0) 2016.10.04
LOB 5번 (orc → wolfman)  (0) 2016.07.13