Lord of BOF_4_Orc

핵심 알고리즘은 다음과 같다.

  • main함수 인자를 받는다.
  • environ 전역변수가 가리키는 주소에 저장된 주소가 가리키는 곳의 데이터를 0으로 바꾼다.
  • argv[1]의 48번째 글자가 \xbf가 아니면 종료한다.
  • strcpy로 스택에 argv[1]를 복사한다.
  • memset으로 main 함수의 스택 프레임 내의 내용을 0으로 바꾼다.

바로 전 문제와 거의 흡사하다. 다만 셸 코드를 main 함수의 buffer에 저장할 수 없다는 점만 다르다.

나는 처음부터 buffer가 아니라 그 뒤쪽(return address보다 높은 주소)을 이용했기 때문에, 바꿀 점이 없다.

자세한 설명은 Lord of BOF_3_Goblin을 참고하자. exploit 코드에서 스택 주소를 약간 보정하기만 했다.

심볼릭 링크의 이름은 orc와 똑같이 3글자로 했다. 이 쪽이 스택 보정이 편하기 때문이다.

wolfman의 비밀번호는 love eyuna 이다.


tags: writeup, pwnable, buffer overflow, stack overflow, memory corruption, elf file, linux, c lang, x86asm