nemo의 이야기
BOF원정대 vampire -> skeleton 본문
이전 문제와 비슷하지만 한가지가 다르다
1. argv를 모두 초기화 한다.
이를 공격하기 위해서는 파일명이 저장되어 있는 스택 메모리 끝에 있는 주소를 이용하여 공격하면 될 것이다.
그러기 위해서는 argv[0]에 있는 주소를 확인해야 된다.
더미코드로 실행하여 argv[0]에 주소를 확인한 결과 0xbffffc22이다.
이제 bfffc22부터 시작하여 스택메모리 끝부분에 있는 파일명에 위치를 찾아보자
bfffffe3에 있는 것을 확인 할 수 있다.
이제 심볼릭 링크를 이용하여 파일명을 공격코드로 변경하여 공격해보자
ln -s skeleton $(python -c 'print "A" + "\x90" * 100 + "\x68\xf9\xbf\x0f\x40\x68\xe0\x91\x03\x40\xb8\xe0\x8a\x05\x40\x50\xc3"')
이렇게 심볼릭 링크를 만들고 심볼릭 링크로 argv[0]에 주소를 넣고 공격해보자
공격에 성공한 것을 확인할 수 있다.
'Information security > System security' 카테고리의 다른 글
BOF원정대 golem -> darknight (0) | 2018.01.28 |
---|---|
BOF원정대 skeleton -> golem (0) | 2018.01.25 |
BOF원정대 orge -> troll (0) | 2018.01.10 |
BOF원정대 darkelf -> orge (0) | 2018.01.08 |
BOF원정대 wolfman -> darkelf (0) | 2018.01.08 |
Comments