티스토리 뷰

문제 6번에는 조건이 하나 더 붙었네요.

이번에는 바로 복사해서 dumpcode.h 를 추가하고 밑에 dumpcode(~)를 추가해주세요.

여러분들이 어떻게 생각하실지는 모르겠지만 전 아래와 같이 생각했습니다.


1. 기존의 조건이 있으니 환경변수와 버퍼는 제외.

2. argv[1]의 길이를 제한.

- argv[1]를 이용하지 말자.

- 어차피 argv의 값들은 **(이중 포인터)이니 어딘가에 저장이 스택 높은 주소 어딘가에 존재한다.

(위의 부분은 프로그램을 자세히 분석 안해보셨다면 처음 아시는 분들도 있을 겁니다.)


그래서 ! 결론적으로 dumpcode(buffer, 1000)으로 스택의 끝까지 살펴보았습니다.

사진이 크지만 제가 네모 친 부분만 보세요. argv는 주소를 두 번 참조하기 때문에 결국에는 맨 아래에 있는 것과 같이 스택에 값이 쌓여있습니다 !
아마 위에서 세 번째 인자의 시작 주소인 0xbffffc49를 RET로 넘겨주면 쉘이 떨어질 것 같습니다 ^^.

kernel crashed ! 커널에 문제가 생겼나 보네요... 다음 몬스터부터는 더 힘들어지겠습니다 ~.~

P.S. 생각해보니까 그냥 argv[1] 부분에 쉘코드를 넣고 RET를 argv[1]로 해도 될 것 같네요 ㅎㅎ...


댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함