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
- ChatGPT
- Python
- 경제
- Web
- 인공지능
- hackerschool
- Scala
- BOF 원정대
- 리눅스
- BOF
- backend
- 백엔드
- 러닝스칼라
- mysql
- Javascript
- hacking
- Shellcode
- webhacking
- flask
- deep learning
- 러닝 스칼라
- hackthissite
- php
- c++
- 딥러닝
- 파이썬
- 웹해킹
- Linux
- 챗GPT
- c
Archives
- Today
- Total
jam 블로그
[bof 원정대] orc -> wolfman (egghunter, buffer hunter) 본문
728x90
문제 풀 소스입니다.
우리가 풀어야 할 과정입니다.
1. 40byte 이내의 shellcode
2. argv[1]의 주소값
3. bof 공격
주소값이 약간 변경해서 성공하였습니다. shellcode 앞에 nop를 넣어서 주소값이 정확하지 않아도 성공할수 있도록 넣었습니다.
[그림1] wolfman.c
소스 분석
1. buffer의 크기는 40
2. 인자값을 적어도 한개이상
3. 환경변수 초기화
4. 첫번째 인자값 48번째의 값은 \xbf 이어야함.
5. 마지막에 buffer 초기화
소스 분석
1. buffer의 크기는 40
2. 인자값을 적어도 한개이상
3. 환경변수 초기화
4. 첫번째 인자값 48번째의 값은 \xbf 이어야함.
5. 마지막에 buffer 초기화
우리가 풀어야 할 과정입니다.
0. bash2
1. 40byte 이내의 shellcode
2. buffer의 주소값이 아닌 argv[1]의 주소값
3. bof 공격
1. 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"
2. argv[1]의 주소값
[그림 2] argv[1]의 주소값 구하는 소스
[그림 3] argv[1]의 주소값
[그림 3] argv[1]의 주소값
3. bof 공격
여기서 주소값을 넣어도 실패 할수 있습니다. 따라서 주소값을 앞뒤로 약간식 바꿔주시면 됩니다...
주소값이 약간 변경해서 성공하였습니다. shellcode 앞에 nop를 넣어서 주소값이 정확하지 않아도 성공할수 있도록 넣었습니다.
'해킹 > 시스템' 카테고리의 다른 글
[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 원정대] goblin -> orc (egghunter) (0) | 2012.03.19 |
[bof 원정대] cobolt -> goblin (small buffer, stdin) (0) | 2012.03.16 |
[bof 원정대] gremlin -> cobolt (small buffer bof) (0) | 2012.03.16 |
Comments