jam 블로그

[bof 원정대] orc -> wolfman (egghunter, buffer hunter) 본문

해킹/시스템

[bof 원정대] orc -> wolfman (egghunter, buffer hunter)

kid1412 2012. 3. 19. 17:51
728x90
문제 풀 소스입니다.

 [그림1] wolfman.c

소스 분석
1. buffer의 크기는 40
2. 인자값을 적어도 한개이상
3. 환경변수 초기화
4. 첫번째 인자값 48번째의 값은 \xbf 이어야함.
5. 마지막에 buffer 초기화 


우리가 풀어야 할 과정입니다.

0. bash2
1. 40byte 이내의 shellcode
2. buffer의 주소값이 아닌 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] argv[1]의 주소값 

 
3. bof 공격

여기서 주소값을 넣어도 실패 할수 있습니다. 따라서 주소값을 앞뒤로 약간식 바꿔주시면 됩니다...

 [그림 4] bof 공격

주소값이 약간 변경해서 성공하였습니다.  shellcode 앞에 nop를 넣어서 주소값이 정확하지 않아도 성공할수 있도록 넣었습니다.

Comments