문제 풀이에 대한 자세한 설명은 이전 레벨들 풀이에 모두 되어있으므로, 생략한다.
이번에는 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/