System Hacking/해커스쿨 L.O.B Hacking Zone
해커스쿨 L.O.B level 2 [gremlin]
En_Geon
2020. 5. 16. 20:06
gremlin 로그인 후 파일을 확인한다.
gate와 같이 실행파일과 코드 파일 두 개 있다. 코드 파일을 열어서 분석한다.
gate 문제와 같고 다른 건 배열의 크기만 다르다.
gdb를 봐도 gate 문제와 스택이 ebp-16로 크기만 다를 뿐 문제는 같다.
gate 문제와 같은 방식으로 공격하면 된다.
더보기

export

getenv 코드

getenv 주소

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

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


환경변수를 넣고 주소를 얻었으면 스택 구조만큼 BOF를 일으키면 되는데 스택 구조를 도식화하면 이렇다.
char buffer[16] 16byte |
SFP 4byte |
RET 4byte |
BOF를 SFP까지 일으켜 RET에 셸 코드를 넣어야 하므로 20byte만큼 넣어주면 된다.

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