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 | 31 |
Tags
- deep learning
- webhacking
- 경제
- 딥러닝
- Scala
- Shellcode
- Web
- 챗GPT
- flask
- hackthissite
- 백엔드
- Linux
- 러닝스칼라
- 리눅스
- 파이썬
- hackerschool
- mysql
- c
- php
- backend
- c++
- Python
- ChatGPT
- hacking
- 웹해킹
- BOF 원정대
- 러닝 스칼라
- Javascript
- 인공지능
- BOF
Archives
- Today
- Total
jam 블로그
[bof 원정대] nightmare -> xavius (fgets, destroyer) 본문
728x90
다음 문제소스입니다.
풀기위한 과정입니다.
0. 공격방식
1. read 함수의 buffer 주소값 구하기
2. bof 공격
[그림 1] xavius.c
소스분석
1. buffer의 크기는 40
2. fgets로 글자를 받아 256만큼 buffer에 넣는다
3. buffer+47값이 \xbf, \x08이면 안됨.
4. buffer의 44번째 이후의 4byte를 ret_addr에 복사
5. 메모리 검사하여 leave,ret 주소값이 있으면 안됨.
6. memset으로 리턴값 제외하고 전부다 초기화
소스분석
1. buffer의 크기는 40
2. fgets로 글자를 받아 256만큼 buffer에 넣는다
3. buffer+47값이 \xbf, \x08이면 안됨.
4. buffer의 44번째 이후의 4byte를 ret_addr에 복사
5. 메모리 검사하여 leave,ret 주소값이 있으면 안됨.
6. memset으로 리턴값 제외하고 전부다 초기화
풀기위한 과정입니다.
0. bash2
1. read함수의 buffer 주소값 구하기
2. bof 공격
0. 공격방식
buffer에 넣을만한 곳은 죄다 초기화 되므로 fgets를 써서 공격을 합니다.
fgets는 read 함수를 쓰는데 이때 read함수가 쓰는 buffer를 공략하면 됨니다.
공격맵
[buffer + sfp ] [read함수가 쓰이는 주소값] [입력 받을수 있는 명령어]
[nop 27byte + shellcode 17byte]
1. read 함수의 buffer 주소값 구하기
[그림 2] read함수 후에 0x40015000을 쓰는모습.
strace 명령어로 복사본파일을 실행시키면 위와같이 read함수가 0x40015000을 사용합니다.
strace 명령어로 복사본파일을 실행시키면 위와같이 read함수가 0x40015000을 사용합니다.
2. bof 공격
[그림 3] bof 공격
'해킹 > 시스템' 카테고리의 다른 글
[시스템] shellcode 모음 사이트 (0) | 2014.09.25 |
---|---|
[bof 원정대] xavius -> death_knight (remote bof) (0) | 2012.04.02 |
[bof 원정대] succubus -> nightmare (PLT) (0) | 2012.03.31 |
[bof 원정대] zombie_assassin -> succubus (calling functions continuously) (0) | 2012.03.29 |
[bof 원정대] assassin -> zombie_assassin (FEBP;fake ebp) (0) | 2012.03.27 |
Comments