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
- hackthissite
- Web
- ChatGPT
- 백엔드
- 러닝 스칼라
- 웹해킹
- flask
- mysql
- php
- webhacking
- 러닝스칼라
- hacking
- backend
- Python
- Javascript
- Shellcode
- 파이썬
- BOF 원정대
- c
- 경제
- Scala
- 챗GPT
- hackerschool
- c++
- 딥러닝
- 인공지능
- deep learning
- Linux
- 리눅스
Archives
- Today
- Total
jam 블로그
[bof 원정대] orge -> troll (check argc, argv hunter) 본문
728x90
다음 문제의 소스이다.
우리가 풀어야할 과정이다.
1. argv[0]에 shellcode 넣기
execl 함수는 다음과 같다.
execl(파일명,0번째 인자값, 첫번째 인자값,......,null)
2. argv[0] 주소값 찾기
dumpcode 함수는 ohara님께서 만드신 헤더파일입니다.
[그림 4] dumpcode.h
[그림 5] troll1을 실행시켜서 argv[0] 주소값
위에서 test.c에서 troll를 소스 복사한 파일명을 바꾸어주고 위처럼 실행하면 argv[0]에 shellcode 들어간 주소값을 얻을 수 있다.
3. bof 공격
[그림 1] troll.c
소스분석
1. buffer의 크기는 40
2. 환경변수 초기화
3. 첫번째 인자값의 48번째의 값은 \xbf 이여야함.
4. 첫번째 인자값의 길이는 48보다 크면 안됨.
5. buffer 초기화
6. 첫번째 인자값 초기화
소스분석
1. buffer의 크기는 40
2. 환경변수 초기화
3. 첫번째 인자값의 48번째의 값은 \xbf 이여야함.
4. 첫번째 인자값의 길이는 48보다 크면 안됨.
5. buffer 초기화
6. 첫번째 인자값 초기화
우리가 풀어야할 과정이다.
이 문제 풀 방법이 2가지 이상이다. 하나는 심볼릭 링크로 푸는것과 또다른 하나는 execl 함수 사용인데.
심볼릭 링크 관련 문제풀이의 대한 감이 안잡혀서 execl 함수를 사용하여 문제를 풀겠다.
0. bash2
1. argv[0]에 shellcode 넣기
2. argv[0] 주소값 찾기
3. bof 공격
1. argv[0]에 shellcode 넣기
앞에서의 공격방식은 argv[1] 넣었지만 지금은 초기화가 되기 때문에 argv[0]에 넣어서 공격해봅시다.
execl 함수는 다음과 같다.
execl(파일명,0번째 인자값, 첫번째 인자값,......,null)
2. argv[0] 주소값 찾기
먼저 소스 복사해서 argv[0] 주소값을 구하자
dumpcode 함수는 ohara님께서 만드신 헤더파일입니다.
[그림 4] dumpcode.h
[그림 5] troll1을 실행시켜서 argv[0] 주소값
위에서 test.c에서 troll를 소스 복사한 파일명을 바꾸어주고 위처럼 실행하면 argv[0]에 shellcode 들어간 주소값을 얻을 수 있다.
3. bof 공격
[그림 6] bof 공격
주소값은 약간 변경 될 수 있습니다.
주소값은 약간 변경 될 수 있습니다.
'해킹 > 시스템' 카테고리의 다른 글
[bof 원정대] vampire -> skeleton (argv hunter) (0) | 2012.03.21 |
---|---|
[bof 원정대] troll -> vampire (check 0xbfff) (0) | 2012.03.20 |
[bof 원정대] darkelf -> orge (check argv[0]) (0) | 2012.03.19 |
[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 |
Comments