SYSTEM

· Hacking
Chunk: 덩어리1. ptmalloc이 할당한 메모리 공간을 의미2. 헤더와 데이터로 구성- 헤더: 청크 관리에 필요한 정보-- 사용 중인 청크 + 해제된 청크로 구성- 데이터: 사용자가 입력한 데이터가 저장bin: 사용이 끝난 청크들이 저장되는 객체62개의 smallbin63개의 largebin1개의 unsortedbin2개의 사용되지 않는 bin - smallbinsmallbin[0] = 32smallbin[61] = 1008 바이트 크기의 chunk를 보관청크의 크기는 16바이트씩 커짐. - 원형 이중 연결 리스트, 먼저 해제된 청크가 먼저 재할당- FIFO, LIFO - fastbin- 단일 연결 리스트- LIFO- 청크는 서로 병합되지 않음. - largebin- 1024 바이트 이상의 크기를..
cmd_center cmd_centerDescription IP를 확인할 필요가 없습니다! 혹시 다른 명령어는 못쓰나요? 다른 명령어를 사용했다면 플래그를 획득하세요! References https://dreamhack.io/learn/2/1#3 https://dreamhack.io/learn/2/14#3dreamhack.io문제 분석12345678910111213141516171819202122int main(){         char cmd_ip[256] = "ifconfig";        int dummy;        char center_name[24]; // bof         init();         printf("Center name: ");        read(0, center..
cherry Cherry Description 주어진 바이너리와 소스 코드를 분석하여 익스플로잇하고 플래그를 획득하세요! 플래그는 flag.txt 파일에 있습니다. 플래그의 형식은 DH{...} 입니다. dreamhack.io 문제 보호 기법을 확인해보니 카나리도 없고 PIE도 적용되어 있지 않는 것을 확인할 수 있다. 소스코드를 읽어보니 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 void flag() { char *cmd = "/bin/sh"; char *args[] = {cmd, NULL}; execve(cmd, args, NULL); } int main(int argc, char *argv[]) { int stdin_fd = 0; int s..
mmapped mmapped Description 프로그램의 취약점을 찾고 익스플로잇하여 플래그를 출력하세요. 플래그는 ./flag 파일에 위치합니다. 플래그의 형식은 DH{...} 입니다. dreamhack.io 문제 먼저 바이너리 파일에 걸려있는 보호기법을 알아보았다. 일단 카나리를 제외한 보호기법이 걸려있는 것으로 보아 스택 오버플로우를 일으키는 문제일 수 있겠다고 생각했다. 그래서 소스코드를 읽어보니, 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 32 #define FLAG_SIZE = 0x45 int main(int argc, char *argv[]) { int len; char * fake..
basic_rop_x86 basic_rop_x86 Description 이 문제는 서버에서 작동하고 있는 서비스(basic_rop_x86)의 바이너리와 소스 코드가 주어집니다. Return Oriented Programming 공격 기법을 통해 셸을 획득한 후, "flag" 파일을 읽으세요. "flag" 파일 dreamhack.io 문제 basic_rop_x86 위의 문제와 똑같으나 아키텍처 환경만 다른 문제이다. 64비트 환경에서는 rdi, rsi, rdx에 인자를 넣어주고 함수를 실행했었으나, 32비트 환경에서는 함수 실행 명령 이후 인자를 집어넣어야했다. 1 2 3 4 5 pppr = 0x08048689 pr = 0x0804868b payload = b"A" * 0x48 payload += p32(..
sy46
'SYSTEM' 태그의 글 목록