System Hacking/해커스쿨 L.O.B Hacking Zone

해커스쿨 L.O.B level 2 [gremlin]

En_Geon 2020. 5. 16. 20:06

gremlin 로그인 후 파일을 확인한다.

 

파일 확인

 

gate와 같이 실행파일과 코드 파일 두 개 있다. 코드 파일을 열어서 분석한다.

 

cobolt.c

 

gate 문제와 같고 다른 건 배열의 크기만 다르다. 

 

gdb cobolt

 

gdb를 봐도 gate 문제와 스택이 ebp-16로 크기만 다를 뿐 문제는 같다. 

gate 문제와 같은 방식으로 공격하면 된다.

 

더보기

 

export로 환경변수를 넣어준다. 이때 셸 코드는 25byte가 아닌 41byte or F.T.Z에서 사용했던 eggshell에 있던 셸 코드를 사용하길 바란다. 본인은 eggshell에서 사용하던 셸 코드를 사용하였다.

 

export

 

환경변수를 넣었으면 getenv 함수로 환경변수가 들어가 있는 주소를 얻어온다.

 

getenv 코드

 

getenv 주소

 

환경변수를 넣고 주소를 얻었으면 스택 구조만큼 BOF를 일으키면 되는데 스택 구조를 도식화하면 이렇다.

 

char buffer[16] 16byte
SFP 4byte
RET 4byte

 

BOF를 SFP까지 일으켜 RET에 셸 코드를 넣어야 하므로 20byte만큼 넣어주면 된다.

 

공격

 

F.T.Z에서도 항상 하던 공격 방식으로 넣어주면 된다.