일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- ChatGPT
- BOF 원정대
- 챗GPT
- hackerschool
- backend
- Python
- hackthissite
- Linux
- php
- 리눅스
- deep learning
- c++
- hacking
- Scala
- 러닝 스칼라
- 경제
- 인공지능
- 러닝스칼라
- 딥러닝
- mysql
- 웹해킹
- 파이썬
- webhacking
- Javascript
- 백엔드
- c
- BOF
- flask
- Shellcode
- Web
- Today
- Total
목록BOF 원정대 (20)
jam 블로그
다음 문제의 소스입니다. /* The Lord of the BOF : The Fellowship of the BOF - dark knight - remote BOF */ #include #include #include #include #include #include #include #include #include main() { char buffer[40]; int server_fd, client_fd; struct sockaddr_in server_addr; struct sockaddr_in client_addr; int sin_size; if((server_fd = socket(AF_INET, SOCK_STREAM, 0)) == -1){ perror("socket"); exit(1); } server..
다음 문제소스입니다. [그림 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으로 리턴값 제외하고 전부다 초기화 풀기위한 과정입니다. 0. bash2 1. read함수의 buffer 주소값 구하기 2. bof 공격 0. 공격방식 buffer에 넣을만한 곳은 죄다 초기화 되므로 fgets를 써서 공격을 합니다. fgets는 read 함수를 쓰는데 이때 read함수가 쓰는 buffer를 공략하면 됨니다. 공격맵 [buffer +..
다음은 문제의 소스입니다. [그림 1] nightmare.c 소스분석 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의 구..
다음이 문제 소스입니다. /* The Lord of the BOF : The Fellowship of the BOF - succubus - calling functions continuously */ #include #include #include // the inspector int check = 0; void MO(char *cmd) { if(check != 4) exit(0); printf("welcome to the MO!\n"); // olleh! system(cmd); } void YUT(void) { if(check != 3) exit(0); printf("welcome to the YUT!\n"); check = 4; } void GUL(void) { if(check != 2) exit(0..
다음 문제의 소스를 보자. [그림 1] zombie_assassin.c 소스분석 1. buffer의 크기는 40 2. 인자값은 적어도 하나이상 3. 첫번째 인자값의 48번째 값이 \xbf,\x40이면 안됨. 4. 첫번째 인자값의 길이 48 만큼 buffer에 복사함. 공격하기 위한 과정입니다. 0. bash2 1. system, exit, /bin/sh, leave, buffer의 주소값 구하기 2. bof 공격 1. system, exit, /bin/sh, leave, buffer의 주소값 구하기 [그림 2] system, exit의 주소값 [그림 3] leave의 주소값 [그림 4] /bin/sh의 주소값 [그림 5] buffer의 주소값 2. bof 공격 fake ebp에 대해서 알아보자. sfp ..