본문 바로가기

system

FTZ level1 보호되어 있는 글입니다. 더보기
[hackerschool FTZ] trainer6-10 Trainer6 coffee 패스워드 파일: 사용자들의 모든 정보를 저장한 파일 ‘root : x : 0 : 0 : Admin : /root : /bin/bash ‘ ‘아이디(계정) : 패스워드 : 0이란 녀석 : 속한 그룹 : 사용자의이름 : 로그인에 성공하였을 때 기본으로 위치하게되는 디렉토리 : 처음 로그인했을 때 실행되게 할 프로그램’ Trainer7, to the top 백업한다 – 하드에 들어있는 데이터를 똑같이 다른 곳으로 복사하여 안전하게 보관하는 것 압축 시 사용하는 명령어 – tar, gzip Tar Ø 합치기: tar cvf 합칠파일 합칠 파일들 Ø 해제하기: tar xvf 해제할 파일 Ø 옵션: c – 새로운 파일 만들기, x – 압축 해제, v – 압축되거나 풀리는 과정 출력, f.. 더보기
[hackerschool FTZ] trainer1~5 Trainer1, trainer1 ls ls -l 파일인지 디렉토리인지 알려줌, 용량도 알려줌 è 디렉토리면 drw-rwx-r—이런식으로, 파일이면 -r~ ls -a 숨겨질 파일을 알려줌 -rw-rw-r--: 파일의 모드와 성격 알려줌 Trainer2, linuxer Pwd – 현재경로 cd .. – 한단계 뒤로 cd trainer2 – trainer2하위로 내려감 cd / - 차상위 디렉토리로 이동 mkdir – 디렉토리 생성 반대는 rmdir cp 복사원본 복사사본 파일 삭제 – rm 복사사본 Trainer3, computer >w 3. ip 4. 로그인시간 5. 지연시간 6. CPU사용한 지연시간 7. what필드에 있는 명령이 지연된 시간 8. 현재 어떤 명령을 사용하는지 >finger -l >t.. 더보기
[protostar]net1 #include "../common/common.c" #define NAME "net1" #define UID 998 #define GID 998 #define PORT 2998 void run() { char buf[12]; char fub[12]; char *q; unsigned int wanted; wanted = random(); sprintf(fub, "%d", wanted); if(write(0, &wanted, sizeof(wanted)) != sizeof(wanted)) { errx(1, ":(\n"); } if(fgets(buf, sizeof(buf)-1, stdin) == NULL) { errx(1, ":(\n"); } q = strchr(buf, '\r'); if(q) *q = 0; .. 더보기
[protostar]배운 부분 정리 1. return2lib - plt (procedure linkage table): 외부 라이브러리에서 가져다 쓸 경우 plt를 참조한다. ex)0x800808ab puts@plt - got (global offset table): 함수들의 주소를 담고 있는 테이블. 라이브러리에서 함수를 호출할 때 plt가 got를 참조한다. =>RTL(Return to Library) : 공유 라이브러리에 있는 함수의 주소를 이용해서 바이너리에 존재하지 않는 함수를 사용할 수 있다. + DEP (Data Execution Prevention): 데이터 실행 방지로 스택이나 힙에서의 쉘 코드 실행을 막아주는 메모리 보호 기법. NX bit (Never Execute Bit): NX 특성으로 지정된 모든 메모리 구역은 데.. 더보기
[Protostar]Net 0 #include "../common/common.c" #define NAME "net0" #define UID 999 #define GID 999 #define PORT 2999 void run() { unsigned int i; unsigned int wanted; wanted = random(); printf("Please send '%d' as a little endian 32bit int\n", wanted); if(fread(&i, sizeof(i), 1, stdin) == NULL) { errx(1, ":(\n"); } if(i == wanted) { printf("Thank you sir/madam\n"); } else { printf("I'm sorry, you sent %d instead.. 더보기
[protostar]heap3.c 보호되어 있는 글입니다. 더보기
[protostar]heap2.c This level examines what can happen when heap pointers are stale. This level is completed when you see the "you have logged in already!" message This level is at /opt/protostar/bin/heap2 > ./heap2 [ auth = (nil), service = (nil) ] auth A [ auth = 0x804c008, service = (nil) ] service A [ auth = 0x804c008, service = 0x804c018 ] 0x804c018 - 0x804c008 = 0x10(16진수) = 16(10진수) 16만큼의 오버플로우 필요 (python -.. 더보기

반응형
LIST