일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- SWiFT
- Java
- 파일 시스템
- LoB
- web
- 백준
- windosw 문자열
- HTML
- OSI
- 두근두근 자료구조
- pwnable.kr
- 암호수학
- ftz
- 미로 탐색 알고리즘
- 정렬 알고리즘
- c언어
- C
- ftz level13
- Stack
- 파이썬
- 자료구조
- 시간복잡도
- level13
- 큐
- PHP
- 스택
- windosws wbcs
- 재귀
- System
- War Game
- Today
- Total
나의 기록, 현진록
[War Game] LOB orge 본문
LOB orge
darkelf에서 argv hunter 조건이 추가되었다.
argv[1]의 내용을 모두 0으로 수정하는 코드이다.
argv[1]과 buffer를 사용할 수 없으니 argv[0]을 사용해보자.
argv[0]은 실행 파일이다.
실행 파일을 쉘코드로 바꾸면 될 것 같다.
그 전에 argv[0]의 주소를 알아보자.
파일 이름은 AAAA이므로 41414141이 저장되었을 것이다.
0xbffffc6d가 argv[0] 주소이다.
argv[0] 주소를 알았으니
파일을 복사해 페이로드를 입력해본다.
(굳이 파일을 복사하는 이유는 오류 시 core dump 하기 위한 목적이다.)
troll 파일을 복사한다.
이때 복사파일의 이름을 쉘코드로 하는데
\x2f가 포함된 쉘코드는 사용할 수 없다.
'\x2f' 는 아스키코드로 '/'이기 때문이다.
\xeb\x11\x5e\x31\xc9\xb1\x32\x80\x6c\x0e\xff\x01\x80\xe9\x01\x75\xf6\xeb\x05\xe8\xea\xff\xff\xff\x32\xc1\x51\x69\x30\x30\x74\x69\x69\x30\x63\x6a\x6f\x8a\xe4\x51\x54\x8a\xe2\x9a\xb1\x0c\xce\x81
NOP 추가
파일을 실행 후 ret 값에 argv[0]의 주소를 가진 페이로드 작성
주소가 잘못 되었다.
core dump 확인
NOP을 처음에 100개 넣어주었으니
argv[0]에는 NOP 100개 다음 쉘코드가 입력된다.
0xbffffa8c가 argv[0] 주소이다.
성공
파일을 지우고
쉘코드로 이루어진 파일 이름은 그대로
troll 파일과 심볼릭 링크를 설정한 파일을 다시 만든다.
페이로드 작성
'War Game > LOB' 카테고리의 다른 글
[War Game] LOB vampire (0) | 2018.02.11 |
---|---|
[War Game] LOB troll (0) | 2018.02.09 |
[War Game] LOB darkelf (0) | 2018.02.07 |
[War Game] LOB wolfman (0) | 2018.02.02 |
[War Game] LOB orc (0) | 2018.02.02 |