일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- hackthissite
- Shellcode
- hackerschool
- Javascript
- 파이썬
- hacking
- 러닝스칼라
- BOF
- 인공지능
- c
- Linux
- flask
- php
- Web
- 백엔드
- BOF 원정대
- ChatGPT
- 웹해킹
- deep learning
- 러닝 스칼라
- webhacking
- c++
- 챗GPT
- mysql
- Scala
- 딥러닝
- 리눅스
- 경제
- Python
- backend
- Today
- Total
목록BOF (21)
jam 블로그
다음 문제 소스입니다. [그림 1] golem.c 소스분석 1. buffer의 크기 40 2. 인자값은 적어도 하나 이상 3. 첫번째 인자값의 48번째값은 \xbf 4. 버퍼의 리턴값을 제외한 버퍼부터 끝까지 초기화 문제를 풀 과정입니다. 0. bash2 1. shared library 만들고 환경변수 등록하기 2. bof 공격 1. shared library 만들고 환경변수 등록하기 [그림 2] 임의의 소스 만든후 shared library로 컴파일 후 LD_PRELOAD 환경변수에 등록 공유라이브러리를 만든 후에 LD_PRELOAD 환경변수에 등록을 하면 프로그램이 시작시 적재가 된다. 2. bof 공격 [그림 3] bof 공격 주소값은 buffer 주소보다 낮아야 하며 \x90값이 많이 넣었기 때문..
문제의 소스를 보자 [그림 1] skeleton.c 소스분석 1. buffer의 크기는 40 2. 인자값은 적어도 하나이상 3. 환경변수 초기화 4. 첫번째 인자값의 48번째의 값은 \xbf 5. 첫번째 인자값의 길이가 48보다 크면 안됨. 6. buffer 초기화 7. 모든 인자값 초기화 풀기위한 과정입니다. 0. bash2 1. 심볼릭 링크를 만들수 있는 shellcode 작성 또는 구하기 2. 심볼릭 링크 생성 3. stack 마지막에 들어간 shellcode의 주소값 구하기 4. bof 공격 1. 심볼릭 링크를 만들수 있는 shellcode 작성 또는 구하기 심볼릭 링크를 만들기 위해서는 shellcode에 \x2f가 있으면 안됩니다. 심볼릭 링크에 쓸수 있는 shellcode입니다. 48byte..
다음 문제의 소스입니다. [그림 1] vampire.c 소스 분석 1. buffer의 크기는 40 2. 인자값은 적어도 하나 이상 3. 첫번째 인자값 48번째는 \xbf 이어야 합니다. 4. 첫번째 인자값 47번째는 \xff 아니어야 한다. 문제를 푸는 과정입니다. 0. bash2 1. nop의 갯수를 크게하여 argv[1]의 주소값 구하기 2. bof 공격 1. nop의 갯수를 크게하여 argv[1]의 주소값 구하기 [그림 2] 공격 값 argv[1]의 길이 제한이 없기 때문에 47번째에 \xfe 48번째에 \xbf로 써 넣은 다음 그다음 충분한 \x90값을 주어서 shellcode를 실행하게 합니다. 2. bof 공격 [그림 3] bof 공격 주소만 벗어나게 하여 공격하면 간단하게 됩니다.
다음 문제의 소스이다. [그림 1] troll.c 소스분석 1. buffer의 크기는 40 2. 환경변수 초기화 3. 첫번째 인자값의 48번째의 값은 \xbf 이여야함. 4. 첫번째 인자값의 길이는 48보다 크면 안됨. 5. buffer 초기화 6. 첫번째 인자값 초기화 우리가 풀어야할 과정이다. 이 문제 풀 방법이 2가지 이상이다. 하나는 심볼릭 링크로 푸는것과 또다른 하나는 execl 함수 사용인데. 심볼릭 링크 관련 문제풀이의 대한 감이 안잡혀서 execl 함수를 사용하여 문제를 풀겠다. 0. bash2 1. argv[0]에 shellcode 넣기 2. argv[0] 주소값 찾기 3. bof 공격 1. argv[0]에 shellcode 넣기 앞에서의 공격방식은 argv[1] 넣었지만 지금은 초기화가..
먼저 문제 소스를 봅시다~ [그림 1] orge.c 소스 분석 1. buffer의 크기는 40 2. 인자값은 적어도 하나 이상 3. 0번째 인자값(즉. 실행파일명 또는 경로)의 길이가 77이어야함 4. 환경변수 초기화 5. 첫번째 인자값의 48번째 값은 \xbf 6. 첫번째 인자값의 길이가 48을 넘지 않아야함. 7. buffer 초기화 이제 풀기 위한 과정을 다음과 같습니다. 0. bash2 1. 파일명 및 경로의 길이를 77로 맞추기 2. 40byte 이내의 shellcode 3. argv[1]의 주소값 4. bof 공격 1. 파일명 및 경로의 길이를 77로 맞추기 파일명이 orge 4글자이며 풀 경로는 /home/orge 10글자이다 앞에 ../ 를 막 붙여서 77글자 만들자 ../../../../..