Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- BOF 원정대
- flask
- Python
- 리눅스
- 파이썬
- 러닝스칼라
- hacking
- webhacking
- Scala
- Linux
- 웹해킹
- 러닝 스칼라
- 챗GPT
- ChatGPT
- hackthissite
- c++
- 백엔드
- Javascript
- deep learning
- 인공지능
- BOF
- backend
- 딥러닝
- hackerschool
- mysql
- Shellcode
- c
- Web
- php
- 경제
Archives
- Today
- Total
jam 블로그
[bof 원정대] darkknight -> bugbear (RTL1) 본문
728x90
다음 문제 소스입니다.
[그림 1] bugbear.c
소스 분석
1. buffer의 크기 40
2. 인자값은 적어도 하나 이상
3. 첫번째 인자값의 48번째의 값은 \xbf
풀기 위한 과정입니다.
1. system 함수 주소값 구하기
[그림 2] system 주소값 구하기
2. /bin/sh 주소값 구하기
[그림 3] /bin/sh의 주소값 구하기
BASE_ADDR에 위에서 구한 system 주소값을 넣어서 컴파일 후에 실행하시면 됩니다.
3. bof 공격
[그림 4] bof 공격
1. 공격문은 다음과 같습니다.
[buffer 40byte 쓰레기값][sfp 4byte 쓰레기값][system 주소값][4byte 쓰레기값][/bin/sh 주소값]
buffer부터 sfp까지 44크기의 쓰레기값을 넣고 그다음에 system 주소값 넣은 다음 바로 /bin/sh 주소값이 아닌 4byte만큼 쓰레기 값을 넣어야 됩니다. (아직 이유는 자세히 모르겠습니다. 이유를 알게되면 수정하겠습니다.)
소스 분석
1. buffer의 크기 40
2. 인자값은 적어도 하나 이상
3. 첫번째 인자값의 48번째의 값은 \xbf
풀기 위한 과정입니다.
여기서는 RTL(return to library)를 사용해서 풀어봅시다.
0. bash2
1. system 함수 주소값 구하기
2. /bin/sh 주소값 구하기
3. bof 공격
1. system 함수 주소값 구하기
2. /bin/sh 주소값 구하기
BASE_ADDR에 위에서 구한 system 주소값을 넣어서 컴파일 후에 실행하시면 됩니다.
3. bof 공격
1. 공격문은 다음과 같습니다.
[buffer 40byte 쓰레기값][sfp 4byte 쓰레기값][system 주소값][4byte 쓰레기값][/bin/sh 주소값]
buffer부터 sfp까지 44크기의 쓰레기값을 넣고 그다음에 system 주소값 넣은 다음 바로 /bin/sh 주소값이 아닌 4byte만큼 쓰레기 값을 넣어야 됩니다. (아직 이유는 자세히 모르겠습니다. 이유를 알게되면 수정하겠습니다.)
'해킹 > 시스템' 카테고리의 다른 글
[bof 원정대] giant -> assasin (no stack, no RTL) (0) | 2012.03.26 |
---|---|
[bof 원정대] bugbear -> giant (RTL2, only execve) (0) | 2012.03.23 |
[bof 원정대] golem -> darkknight (sfp or fpo) (0) | 2012.03.22 |
[bof 원정대] skeleton -> golem (stack destroyer) (0) | 2012.03.22 |
[bof 원정대] vampire -> skeleton (argv hunter) (0) | 2012.03.21 |
Comments