티스토리 뷰

HackerSchool FTZ WARGAME Solution

 

Start : 15.07.03

 

LEVEL17

 

[그림 1]

 

hint 파일을 열어보면 [그림 1]과 같이 출력이 되는데 앞에 level16과 흡사한 코드가 출력이 되는데 다른점은 방금과 다르게 shell 함수가 정의 되어 있지 않고, call 함수 포인터에 printit 포인터를 저장해서 호출하고 있다. shell 함수가 없더라도 직접 만들어서 주소값을 call 에 덮어쓰면 된다.

 

[그림 2]

 

환경 변수에 쉘 코드를 저장한다.

 

[그림 3]

 

gdb로 attackme 를 열어서 call 변수의 위치와 buf 배열의 위치를 확인한다. 이번에도 두 변수의 겨리는 40byte 이기 때문에 버퍼 오버플로우 공격이 가능하다.

 

[그림 4]

[그림 5]

 

환경 변수의 주소를 찾은 다음에 [그림 5]와 같이 공격 파일을 생성한다.

 

[그림 6]

[그림 7]

 

파일을 생성한 다음 공격을 시도하면 공격에 성공한 것을 확인할 수 있다.

신고
댓글
댓글쓰기 폼