일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- php
- Python
- c
- Web
- 러닝스칼라
- hackerschool
- 파이썬
- Shellcode
- flask
- 챗GPT
- deep learning
- 백엔드
- 인공지능
- c++
- 러닝 스칼라
- Scala
- hackthissite
- 리눅스
- Linux
- BOF
- hacking
- 웹해킹
- BOF 원정대
- webhacking
- 경제
- 딥러닝
- mysql
- ChatGPT
- Javascript
- backend
- Today
- Total
목록BOF 원정대 (20)
jam 블로그
문제 풀 소스입니다. [그림1] wolfman.c 소스 분석 1. buffer의 크기는 40 2. 인자값을 적어도 한개이상 3. 환경변수 초기화 4. 첫번째 인자값 48번째의 값은 \xbf 이어야함. 5. 마지막에 buffer 초기화 우리가 풀어야 할 과정입니다. 0. bash2 1. 40byte 이내의 shellcode 2. buffer의 주소값이 아닌 argv[1]의 주소값 3. bof 공격 1. 40byte 이내의 shellcode "\x31\xd2\x52\x68\x6e\x2f\x73\x68\x68\x2f\x2f\x62\x69 \x89\xe3\x52\x53\x89\xe1\x8d\x42\x0b\xcd\x80" 2. argv[1]의 주소값 [그림 2] argv[1]의 주소값 구하는 소스 [그림 3] a..
우리가 풀 문제의 소스이다. [그림 1]orc.c 소스분석 1. buffer의 크기는 40 2. 인자값은 적어도 하나이상 3. 환경변수 초기화 4. 첫번째 인자값의 48번째 글자는 \xbf 이어야 함. 5. 첫번째 인자값을 buffer에 복사 6. buffer 출력. 여기서는 환경변수에 등록해서 공격할 수 없다. 그래서 환경변수에 넣지 않고 buffer 넣어서 공격할 것이다. 우리가 해야할 과정이다. 0. bash2 1. buffer 크기인 40byte 보다 작은 shellcode 구하기 (앞에서 쓰던 shellcode는 40byte보다 큽니다.) 2. buffer의 리턴값을 구함. 3. bof 공격 1. shellcode 구하기 구글링하여 24btye 크기인 shellcode를 찾았습니다. "\x31\..
문제 소스를 보자 [그림 1] goblin.c 소스 분석 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"';t..
문제 소스를 봅시다. [그림 1] cobolt.c 소스 분석 1. buffer의 크기는 16 2. 인자값은 적어도 하나 이상 3. 첫번째 인자값을 buffer에 넣는다. 4. buffer를 뿌려준다. 우리가 해야할 일을 알아보자. 0. bash2 사용 (콘솔에서 bash2를 쳐줍니다.) 1. shellcode 구하기 2. shellcode를 환경변수에 올리기 3. 환경변수의 주소값 알기 4. bof 공격 사실상 gate에서 했던 방식 고대로 하면 됩니다. 이유는 우리는 shellcode를 버퍼에 넣는게 아닌 환경변수에 올려서 하기 때문입니다. 1. shellcode 구하기 gate때 썼던 shellcode를 고대로 사용합니다. "\x31\xc0\xb0\x31\xcd\x80\x89\xc3\x89\xc1\x..
bof를 기본적으로 공부할 수 있게 해주신 해커스쿨께 감사의 인사를 드립니다. ^^ [그림 1] bof 원정대 입구~ gremlin의 파일을 bof 시켜야 하는데 gremlin파일의 소스코드는 다음과 같습니다. [그림 2] gremlin.c 소스분석 1. 인자값이 적어도 하나 이상이 되어야한다. 2. buffer의 크기는 256이며 첫번째 인자값을 buffer에 복사합니다. 3. buffer를 뿌려줍니다. bof 할 방법은 환경변수에 shellcode 올려놓고 그것을 불러와서 실행하는 방법으로 할 생각입니다. 우리가 해야할 일은 다음과 같습니다. 0. bash2로 실행시키세요 (콘솔에 bash2를 치고 시작합니다. bash에 버그가 있다고 하네요) 1. shellcode 생성(또는 검색 후 가져오기) 2..