반응형
이번 문제는 RTL(Return To Library) 문제이다.
소스코드를 보면 더 이상 스택 부분 주소 값을 넣을 수 없게 '\xbf' 부분이면 프로그램이 종료된다.
여기서는 system() 함수를 사용할 것이다. 그러면 함수 주소를 알아야 한다.
gdb를 이용해서 system 함수 주소 값을 가져온다.
이제 system 함수에 들어갈 인자 값이 필요하다. 여기서 우리가 system 함수를 이용해 실행할 것은 쉘(/bin/bash)이다.
당연히 메모리에 올라와 있는 문자열이 필요하다. 메모리에 /bin/bash라는 문자열이 올라와있는 곳의 주소 값을 찾아보자.
그림 1-3 소스코드를 컴파일해서 실행시켜 /bin/bash 메모리 주소값을 찾아보자.
컴파일한 후 이렇게 실행하면 메모리 주소 값이 나온다.
이제 이 두 주소를 가지고 exploit을 하면 된다.
먼저 그림 1-1을 보면 총 메모리 크기를 알 수 있다.
그것을 기반으로 계산을 해보면
dummy(40) + sfp(4) + system()(4) + dummy(4) + /bin/bash(4) 이렇게 넣으면 된다.
이렇게 하면 exploit이 성공해 쉘이 뜨는 것을 확인할 수 있다.
반응형
'WarGame > LOB(The Lord of the BOF)' 카테고리의 다른 글
12단계 golem -> darkknight (0) | 2019.09.20 |
---|---|
11단계 skeleton -> golem (0) | 2019.09.20 |
10단계 vampire -> skeleton (0) | 2019.09.08 |
9단계 troll -> vampire (0) | 2019.09.07 |
8단계 orge -> troll (0) | 2019.09.07 |