일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- War Game
- OSI
- windosw 문자열
- SWiFT
- System
- LoB
- 재귀
- HTML
- 암호수학
- web
- 두근두근 자료구조
- 자료구조
- 파이썬
- 백준
- Stack
- 정렬 알고리즘
- windosws wbcs
- PHP
- 큐
- ftz level13
- pwnable.kr
- 시간복잡도
- c언어
- level13
- Java
- 파일 시스템
- C
- 스택
- ftz
- 미로 탐색 알고리즘
Archives
- Today
- Total
나의 기록, 현진록
[War Game] LOB assassin 본문
반응형
LOB assassin
fake ebp
SFP 값을 변조하는 문제이다.
48byte까지 제한이 있기 때문에
FEBP 기법을 사용할 수 있다.
ret 값에 leave를 넣는 것이다.
leave는 다음과 같다.
1. mov esp ebp
2. pop ebp
1. esp에 ebp 저장하여
esp, ebp 모두 SFP 값을 가리킨다.
2. pop에 의해 ebp+4
ret은 다음과 같다.
1. mov eip
2. jmp eip
ret에는 leave 주소를 넣어줄 것이기 때문에
다시 leave가 실행된다.
pop에 의해 ebp는 ebp+4가 저장되어 있고
leave의 mov esp ebp로 인해
esp에는 ebp+4가 저장된다.
그리고 ret에 의해 ebp+4로 이동한다.
ebp+4에 buffer 주소를 넣고
buffer에 쉘코드를 넣으면 될 것 같다.
페이로드는 이렇게 구성된다.
[ &system 4 byte ] [ dummy 4byte ] [ & /bin/sh 4 byte ] [ nop 28 byte ] [ buffer 4 byte ] [ leave 4 byte ]
0xbffffab0부터 버퍼지만
ret은 ebp+4로 이동하기 때문에
0xbffffaac를 넣으면 +4해서 0xbffffab0를 참조할 것이다.
[ &system 4 byte ] [ dummy 4byte ] [ & /bin/sh 4 byte ] [ nop 28 byte ] [ buffer 4 byte ] [ leave 4 byte ]
0x40058ae0 system
0x400fbff9 /bin/sh
0xbffffaac buffer-4
0x80484df leave
복사파일은 성공했지만 원본파일은 실패.
하루종일 해봤지만 원인을 모르겠다.
그냥 buffer 주소를 4byte씩 바꾸어 보았다.
반응형
'War Game > LOB' 카테고리의 다른 글
[War Game] LOB nightmare (0) | 2018.03.11 |
---|---|
[War Game] LOB zombie_assassin (0) | 2018.03.06 |
[War Game] LOB giant (0) | 2018.02.27 |
[War Game] LOB bugbear (0) | 2018.02.26 |
[War Game] LOB darkknight (0) | 2018.02.19 |