문제 풀이에 대한 자세한 설명은 이전 레벨들 풀이에 모두 되어있으므로, 생략한다.



이번에는 argv[1]의 길이를 체크한다. 즉, RET 영역 뒤에 쉘코드를 삽입할 수 없다.

환경변수 역시 초기화당한다.

그렇다면 어디가 남아있을까? 스택 한정.



argv[2]에 넣으면 된다

페이로드에 공백을 통해 여러 개의 인자를 각각 구분할 수 있다. =여러 개의 인자를 전달할 수 있다.

GDB - core를 통해 nop+쉘코드의 주소를 찾아보자.



x/80x $esp

(엔터)


esp 레지스터가 가리키는 영역부터 찾아보면, 금방 nop을 찾을 수 있다.

이제 RET 영역을 nop 영역의 주소 중 한 곳으로 바꿔주면 exploit이 성공한다.



이전 문제들과 마찬가지로 심볼릭 링크를 통해 exploit을 하였다.

darkelf의 패스워드는 kernel crashed

'Wargame Writeup > LOB(Redhat)' 카테고리의 다른 글

LOB orge -> troll  (0) 2015.11.13
LOB darkelf -> orge  (0) 2015.11.13
LOB orc -> wolfman  (0) 2015.11.13
LOB goblin -> orc  (0) 2015.11.13
LOB cobolt -> goblin  (0) 2015.11.13

WRITTEN BY
hojongs
블로그 옮겼습니다 https://hojongs.github.io/