티스토리 뷰
orge.c의 코드 이다. argv의 갯수 제한이 있고, argv[1]과 buffer를 초기화합니다.
이 문제는 argv[0]에 쉘코드를 넣어주면 풀릴 것 같다고 생각했습니다.
tmp로 troll을 복사해서 troll에 쉘코드와 약간의 NOP으로 구성된 심볼릭링크를 걸어줍니다.
tmp에서 코어파일을 보기위해 페이로드를 작성해줍니다.
저렇게 페이로드를 작성했을 때 스택의 구조입니다.
gdb로 코어파일을 분석하기 위해 디버깅합니다.
argv[0]의 시작주소는 0xbffffa74입니다.
이제 임시디렉토리인 tmp 말고 orge에서 원본파일에 심볼릭 링크를 걸어보겠습니다.
ret에 들어갈 주소를 argv[0]의 중간쯤으로 하고 페이로드를 작성하였더니 exploit 되었습니다.
원본파일에 페이로드를 작성했을 때의 스택 구조입니다.
'Pwnable > Lob' 카테고리의 다른 글
Lob vampire(10) (0) | 2017.12.22 |
---|---|
Lob troll(9) (0) | 2017.12.22 |
Lob darkelf(7) (0) | 2017.12.20 |
Lob wolfman(6) (0) | 2017.12.20 |
Lob orc(5) (0) | 2017.12.20 |
댓글