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