일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- 암호수학
- windosw 문자열
- 두근두근 자료구조
- 스택
- 자료구조
- 큐
- Java
- ftz level13
- 재귀
- windosws wbcs
- HTML
- web
- 백준
- LoB
- 시간복잡도
- PHP
- c언어
- SWiFT
- OSI
- pwnable.kr
- War Game
- 미로 탐색 알고리즘
- 파이썬
- C
- 정렬 알고리즘
- 파일 시스템
- ftz
- level13
- System
- Stack
Archives
- Today
- Total
나의 기록, 현진록
[War Game] ftz level11 본문
반응형
ftz level11
level12의 권한을 가진 파일
현재 level11 권한을 가진 지금도 실행할 수 있는 권한이 있다.
hint의 내용이다.
버퍼 오버플로우
즉 버퍼를 넘치게 하는 문제이다.
실행 인자를 입력하면 str 배열에 저장되는데
strcpy는 입력한 그대로 복사를 하기 때문에 256 바이트 이상의 크기도 그대로 수용한다.
setreuid(3092,3092)
3092 사용자 권한으로 바꾼다는 의미이다.
3092는 어떤 계정인지 알아보면
level12 계정이다.
setreuid 함수로 level12 권한을 가지고
/bin/bash or /bin/sh을 실행하면 level12 계정을 유지할 수 있다.
가장 기본적인 버퍼 오버플로우 기법인 ret 주소를 쉘코드로 덮어 씌운다.
ret까지의 거리를 알기 위해서 gdb로 어셈블리 코드를 분석한다.
0x08048473 <main+3>: sub $0x108,%esp
sfp 값까지의 크기가 0x108이다.
0x108 -> 264(10진수)
분석해보면
[str 배열 256] + [ 쓰레기 값 8 ] = 264
264 바이트 이후로는 sfp와 ret이 존재한다
264부터는 sfp고
268부터는 ret이다.
268부터 쉘코드의 주소를 입력하면 성공
쉘코드를 환경변수에 저장하여 주소를 알아내자.
저장된 것을 확인
주소를 출력하기 위한 코드를 작성한다.
주소는 0xbffffc10
이제 페이로드를 작성하면 된다.
반응형
'War Game > ftz' 카테고리의 다른 글
[War Game] ftz level13 (0) | 2018.01.27 |
---|---|
[War Game] ftz level12 (0) | 2018.01.26 |
[War Game] ftz level10 (0) | 2018.01.19 |
[War Game] ftz level9 (0) | 2018.01.19 |
[War Game] ftz level8 (0) | 2018.01.19 |