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 | 31 |
Tags
- 파이썬
- Python
- ChatGPT
- php
- webhacking
- deep learning
- BOF
- Javascript
- 챗GPT
- mysql
- 경제
- Scala
- BOF 원정대
- hackerschool
- 리눅스
- hacking
- Web
- c++
- 백엔드
- 웹해킹
- flask
- c
- hackthissite
- 딥러닝
- 인공지능
- 러닝 스칼라
- Shellcode
- backend
- Linux
- 러닝스칼라
Archives
- Today
- Total
jam 블로그
[bof 원정대] darkelf -> orge (check argv[0]) 본문
728x90
먼저 문제 소스를 봅시다~
이제 풀기 위한 과정을 다음과 같습니다.
1. 파일명 및 경로의 길이를 77로 맞추기
2. 40byte 이내의 shellcode
3. argv[1]의 주소값
4. bof 주소값
[그림 1] orge.c
소스 분석
1. buffer의 크기는 40
2. 인자값은 적어도 하나 이상
3. 0번째 인자값(즉. 실행파일명 또는 경로)의 길이가 77이어야함
4. 환경변수 초기화
5. 첫번째 인자값의 48번째 값은 \xbf
6. 첫번째 인자값의 길이가 48을 넘지 않아야함.
7. buffer 초기화
소스 분석
1. buffer의 크기는 40
2. 인자값은 적어도 하나 이상
3. 0번째 인자값(즉. 실행파일명 또는 경로)의 길이가 77이어야함
4. 환경변수 초기화
5. 첫번째 인자값의 48번째 값은 \xbf
6. 첫번째 인자값의 길이가 48을 넘지 않아야함.
7. buffer 초기화
이제 풀기 위한 과정을 다음과 같습니다.
0. bash2
1. 파일명 및 경로의 길이를 77로 맞추기
2. 40byte 이내의 shellcode
3. argv[1]의 주소값
4. bof 공격
1. 파일명 및 경로의 길이를 77로 맞추기
파일명이 orge 4글자이며 풀 경로는 /home/orge 10글자이다 앞에 ../ 를 막 붙여서 77글자 만들자
../../../../../../../../../../../../../../../../../../../../home/darkelf/orge
2. 40byte 이내의 shellcode
"\x31\xd2\x52\x68\x6e\x2f\x73\x68\x68\x2f\x2f\x62\x69
\x89\xe3\x52\x53\x89\xe1\x8d\x42\x0b\xcd\x80"
3. argv[1]의 주소값
[그림 2] argv[1] 주소값
4. bof 주소값
[그림 3] bof 공격
앞의 문제와 비슷하며 파일명만 바꾼 것이라서 어렵지 않습니다. 역시나 주소값은 약간의 변경이 필요할 수 있습니다.
앞의 문제와 비슷하며 파일명만 바꾼 것이라서 어렵지 않습니다. 역시나 주소값은 약간의 변경이 필요할 수 있습니다.
'해킹 > 시스템' 카테고리의 다른 글
[bof 원정대] troll -> vampire (check 0xbfff) (0) | 2012.03.20 |
---|---|
[bof 원정대] orge -> troll (check argc, argv hunter) (0) | 2012.03.20 |
[bof 원정대] wolfman -> darkelf (egghunter, buffer hunter, check length of argv[1]) (0) | 2012.03.19 |
[bof 원정대] orc -> wolfman (egghunter, buffer hunter) (0) | 2012.03.19 |
[bof 원정대] goblin -> orc (egghunter) (0) | 2012.03.19 |
Comments