전체 글

전체 글

    HTML 강좌 -1. HTML의 구성

    // 문서의 DOCTYPE을 정해준다 ※ 시작태그( ) 로 시작하고 끝태그( ) 로 닫는다. // HTML 시작 // 내용이 들어감

    GET, POST 차이점

    GET : 해당 요청을 몇번을 수행해도 해당 요청에 대한 결과가 계속 동일하게 돌아오는 것을 의미 POST: 해당 요청이 수행되면 서버에서 무언가 바뀌고, 동일한 결과가 돌아오는 것을 보장할 수 없다는 것을 의미EX) GET : 서버에서 값을 받아옴 (서버값을 변경 X), 브라우저에 값이 노출됨 EX) 1) 서버에서 시간을 받아옴 2) 로그인, 로그아웃 POST: 서버에서 값을 받아오고 서버값을 변경 O 보통 많은 양의 데이터를 전송하거나 받아올때 사용, 브라우저에 값 노출 X EX) 1) 파일업로드 2) 게시판 글, 댓글 작성

    HackerSchool LOB Level 19

    /* The Lord of the BOF : The Fellowship of the BOF - xavius - arg*/ #include #include #include main(){char buffer[40];char *ret_addr; // overflow!fgets(buffer, 256, stdin);printf("%s\n", buffer); if(*(buffer+47) == '\xbf'){printf("stack retbayed you!\n");exit(0);} if(*(buffer+47) == '\x08') { printf("binary image retbayed you, too!!\n"); exit(0); } // check if the ret_addr is library function or..

    HackerSchool LOB Level 18

    /* The Lord of the BOF : The Fellowship of the BOF - nightmare - PLT*/ #include #include #include #include main(int argc, char *argv[]){char buffer[40];char *addr; if(argc < 2){printf("argv error\n");exit(0);} // check addressaddr = (char *)&strcpy; if(memcmp(argv[1]+44, &addr, 4) != 0){ printf("You must fall in love with strcpy()\n"); exit(0); } // overflow! strcpy(buffer, argv[1]);printf("%s\n..

    HackerSchool LOB Level 17

    /* The Lord of the BOF : The Fellowship of the BOF - succubus - calling functions continuously */ #include #include #include // the inspectorint 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); printf("welcome to..

    [쿼드콥터] 3 모터,ESC, 전원분배회로 작업

    모터, ESC, 전원분배회로를 작업함. ESC는 케이블타이로 고정시켜주고전원분배회로는 양면테이프로 고정함

    HackerSchool LOB Level 16

    ※소스분석 buffer 40스택영역과 라이브러리 영역에 쉘코드를 올릴수없음argv[1] 은 48까지 입력할수있음이 문제는 Fake ebp를 활용해 풀어야한다 Fake EBP란?leave ret의 명령어 구성leave mov esp, ebppop ebp ret pop eipjmp eip 간단하게말해서 sfp에 buf+4 부분을 덮고 ret에 ret을 덮는것이다 Ret 영역에 leave ret 가젯을 넣어주면 leave mov esp ebp // mov esp ebp가 수행되면서 ebp가 esp로 들어감 -> esp가 ebp로 바뀜 -> pop ebp // pop eip가 수행되면서 스택주소가 +4됨ret pop eip // 조작해둔 leave가젯이 eip로 들어간다 jmp eip // leave 가젯으로 ..

    HackerSchool LOB Level 15

    코드를 보자※ No Stack No RTL스택영역과 라이브러리 영역에 코드를 올릴수가없다 풀이법은 RET에다 코드로서의(RET)을 넣는것이다.어셈블리 RET은 POP EIPJMP EIP 로 이루어져있다.해석해보자면 EIP를 POP한다음 EIP로 점프하는것이다.RET에다가 어셈블리RET을 넣으면 RET이 실행되면서 안의 POP EIP가 실행되 주소가 +4 되고 +4된 주소로 점프한다.우리는 환경변수에 코드를 올리고 공격해보겠다. 환경변수 test에 놉과 쉘코드를 올려준다. getenv함수를 이용하여 환경변수 test의 주소를 구해준다. gdb로 assasin을 복사한 assasi1을 열어 디스어셈블해주면 ret의 주소를 알수있다. RET의 주소는 0x804851e 이다. 페이로드를 짜보자자면 ./assas..