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
- hacking
- webhacking
- hackerschool
- 파이썬
- 백엔드
- 챗GPT
- hackthissite
- BOF 원정대
- BOF
- ChatGPT
- deep learning
- backend
- 경제
- 리눅스
- 딥러닝
- Shellcode
- flask
- Python
- php
- c++
- mysql
- Scala
- 러닝스칼라
- Web
- Linux
- Javascript
- 인공지능
- 러닝 스칼라
- 웹해킹
- c
Archives
- Today
- Total
jam 블로그
[bof 원정대] succubus -> nightmare (PLT) 본문
728x90
다음은 문제의 소스입니다.
풀기위한 과정입니다.
0. 공격 방법
1. strcpy의 주소값 구하기
2. buffer의 주소값, argv[2]의 주소값 구하기
3. bof 공격
[그림 1] nightmare.c
소스분석
1. buffer의 크기 40
2. 인자값은 적어도 하나 이상
3. 리턴값이 strcpy의 값이어야 한다.
4. strcpy로 첫번째 인자값은 buffer에 복사
5. buffer+48 뒤쪽의 4byte를 AAAA로 채운다.
소스분석
1. buffer의 크기 40
2. 인자값은 적어도 하나 이상
3. 리턴값이 strcpy의 값이어야 한다.
4. strcpy로 첫번째 인자값은 buffer에 복사
5. buffer+48 뒤쪽의 4byte를 AAAA로 채운다.
풀기위한 과정입니다.
0. bash2
1. strcpy의 주소값 구하기
2. buffer의 주소값, argv[2]의 주소값 구하기
3. bof 공격
0. 공격 방법
PLT란?
일종의 실제 호출 코드를 담고 있는 Procedure Linkage Table(프로시져 링키지 테이블)로써 이 내용 참조를
통해 _dl_runtime_resolve가 수행되고, 실제 시스템 라이브러리 호출이 이루어지게 된다.
strcpy의 구조
[strcpy][dummy][dest][src]
공격맵
[buffer(dummy)][sfp(dummy)][strcpy][dummy][buffer+48(ret)][argv[2]]
argv[2] =>[system][exit][/bin/sh]
1. strcpy의 주소값 구하기
[그림 2] strcpy의 주소값 구하기
2. buffer의 주소값, argv[2]의 주소값 구하기
[그림 3] 주소값 구하기 위한 소스코드
[그림 4] buffer의 주소값, argv[2]의 주소값
[그림 4] buffer의 주소값, argv[2]의 주소값
3. bof 공격
[그림 5] bof 공격
'해킹 > 시스템' 카테고리의 다른 글
[bof 원정대] xavius -> death_knight (remote bof) (0) | 2012.04.02 |
---|---|
[bof 원정대] nightmare -> xavius (fgets, destroyer) (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 |
[bof 원정대] giant -> assasin (no stack, no RTL) (0) | 2012.03.26 |
Comments