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
- Javascript
- 리눅스
- hackthissite
- hacking
- c++
- 러닝스칼라
- Python
- 러닝 스칼라
- BOF
- mysql
- backend
- 딥러닝
- BOF 원정대
- webhacking
- php
- ChatGPT
- deep learning
- Linux
- 인공지능
- 백엔드
- 웹해킹
- Scala
- Web
- c
- 경제
- Shellcode
- 파이썬
- 챗GPT
- hackerschool
- flask
Archives
- Today
- Total
jam 블로그
[bof 원정대] gremlin -> cobolt (small buffer bof) 본문
728x90
문제 소스를 봅시다.
우리가 해야할 일을 알아보자.
1. shellcode 구하기
2. shellcode를 환경변수에 올리기
3. 환경변수의 주소값 알기
4. bof 공격
[그림 1] cobolt.c
소스 분석
1. buffer의 크기는 16
2. 인자값은 적어도 하나 이상
3. 첫번째 인자값을 buffer에 넣는다.
4. buffer를 뿌려준다.
소스 분석
1. buffer의 크기는 16
2. 인자값은 적어도 하나 이상
3. 첫번째 인자값을 buffer에 넣는다.
4. buffer를 뿌려준다.
우리가 해야할 일을 알아보자.
0. bash2 사용 (콘솔에서 bash2를 쳐줍니다.)
1. shellcode 구하기
2. shellcode를 환경변수에 올리기
3. 환경변수의 주소값 알기
4. bof 공격
사실상 gate에서 했던 방식 고대로 하면 됩니다. 이유는 우리는 shellcode를 버퍼에 넣는게 아닌 환경변수에 올려서 하기 때문입니다.
1. shellcode 구하기
gate때 썼던 shellcode를 고대로 사용합니다.
"\x31\xc0\xb0\x31\xcd\x80\x89\xc3\x89\xc1\x31\xc0\xb0\x46\xcd\x80"
"\xeb\x1f\x5e\x89\x76\x08\x31\xc0\x88\x46\x07\x89\x46\x0c\xb0\x0b"
"\x89\xf3\x8d\x4e\x08\x8d\x56\x0c\xcd\x80\x31\xdb\x89\xd8\x40\xcd"
"\x80\xe8\xdc\xff\xff\xff/bin/sh"
2. shellcode를 환경변수에 올리기
[그림 2] shellcode를 환경변수 shellcode에 올린다.
이것 또한 gate에서 했던것과 같습니다.
이것 또한 gate에서 했던것과 같습니다.
3. 환경변수의 주소값 알기
[그림 3] 환경변수의 주소값 알기 위한 소스
[그림 4] shellcode 환경변수의 주소값
[그림 4] shellcode 환경변수의 주소값
4. bof 공격
[그림 5] bof 공격
공격이 성공하면 다음과 같이 볼수 있습니다.
공격이 성공하면 다음과 같이 볼수 있습니다.
'해킹 > 시스템' 카테고리의 다른 글
[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 |
[bof 원정대] cobolt -> goblin (small buffer, stdin) (0) | 2012.03.16 |
[bof 원정대] gate -> gremlin (simple BOF) (0) | 2012.03.16 |
Comments